如何解决c中的分段错误?

用户15264532

当我在制作我的程序时,我得到了一个叫做Segmentation Fault的错误类型

#include <cs50.h>
#include <string.h>
#include <stdio.h>

int main(int argc, string argv[])
{
    char i = strlen(argv[2]);
    if (argc == 2)
    {
        printf("%i %s %hhd", argc, argv[2], i);
    }
}

我使用这些命令运行这个程序

make substitution

接着

./substitution abcdefghijklmnopqrstuvwxyz

在此我们必须添加一个 26 字的键,在上一行中是 a 到 z。

知道解决的请帮忙

威廉·珀塞尔

如果你调用你的程序:

./substitution abcdefghijklmnopqrstuvwxyz

argc将是 2,并且argv将是一个包含 3 个指针的数组:

argv[0]指向 string ./substitutionargv[1]指向 string abcdefghijklmnopqrstuvwxyz,并且argv[2]为 NULL。如果您尝试通过调用 来计算 NULL 的长度strlen(argv[2]),那将是一个错误。您不得将 NULL 传递给strlen. 我认为您的错误只是错误地索引了 argv 数组。C 中的数组是从零开始的。如果你想计算第一个参数的长度,你想使用argv[1],而不是argv[2]

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int
main(int argc, char *argv[])
{
    int rc = EXIT_FAILURE;
    if( argc > 1 ){
        size_t i = strlen(argv[1]);
        printf("%i %s %zd\n", argc, argv[1], i);
        rc = EXIT_SUCCESS;
    }
    return rc;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决NodeJS JavaScript中的...错误

如何解决Python中的内存错误

使用Python Ctypes和C ++时,如何解决分段错误?

如何解决c中的冲突类型错误?

访问动态数组中的结构中的字符串变量时,如何解决“分段错误(核心转储)”错误

没有指针时如何解决“分段错误”?

重新平衡时如何解决AVL删除操作中的分段错误?

如何在C中的CPU调度仿真程序中解决分段错误(核心转储)错误?

如何解决由我试图调用的求和函数引起的分段错误?C ++

试图解决-C中的分段错误

在链表实现中调用strcpy()时如何解决分段错误?

使用Python ctypes调用rs232.c时如何解决分段错误问题?

如何解决“分段错误(核心已转储)”

如何解决“分段错误(核心已转储)”

如何解决登录页面中的错误

如何解决Objective-C中的“ NSInternalInconsistencyException”错误?

如何解决C#中的系统参数异常错误?

如何解决Grails中的BuildConfig错误

我该如何解决分段错误(核心已转储)?

如何解决C ++头文件中的许多错误?

如何解决 Python 中的“MissingSchema”错误?

如何解决此错误:分段错误?

如何解决 Haskell 中错误的缩进

“如何解决错误:';' 预计在 Java 中?”

如何解决合并排序c程序中的分段错误?

如何解决这段代码中的分段错误?

如何解决C程序中的分段错误

如何解决此 C# 代码中的 CORS 错误?

c中的分段错误。谁能告诉我如何解决它?