为什么不和strlen(argv [i])相同?

时间:2017-11-02 15:38:15

标签: c segmentation-fault main argv argc

当我使用strlen(argv [i])而不是argc时,为什么我的代码会出现分段错误?

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

int main(int argc , char* argv[])
{
    for(int i=0;i<strlen(argv[i]);i++)
    printf("%s\n",argv[i]);
    return 0;
}

输出

./a.out
hello
world
Segmentation fault (core dumped)

1 个答案:

答案 0 :(得分:1)

使用argc:

int main(int argc , char* argv[])
{
    for(int i = 0; i < argc; i++)
        printf("%s\n", argv[i]);
    return 0;
}

有关详细信息,请参阅此问题的答案: What does int argc, char *argv[] mean?