C-字符串声明分段故障



声明字符串后,我会得到一个分段故障。我不知道如何解决此错误 - 您能解释一下吗?

代码版本1(使用cs50.htypedef char *string;):

int main (int argc, string argv[])
{
    string key = argv[1]; 
    checkKey(key, argc);
}
int checkKey(string text, int n)
{
    //check if text is alphabetical and if argc has the desired amount of command-line elements 
}

代码版本2:

#include <stdio.h>
#include <ctype.h>
#include <cs50.h>
int main (int argc, char* argv[])
{
    printf("%d elements in argc and %s in argv[1]n", argc, argv[1]);
    char* key = argv[1];
}

如果您在没有命令行参数的情况下运行程序,它将接收 argc的值1和尺寸2的数组argv,其中 argv[0]中的程序名称和 NULL中的 CC_7。P>

如果您的函数charkKey()表示它接收到的第一个参数的指针,则可以调用未定义的行为,这可能会导致分段故障。

相关内容

  • 没有找到相关文章

最新更新