2017-11-02 14 views
0

私のコードがセグメンテーションフォルトを与えるのはなぜですか?私のコードが主な議論でセグメンテーション違反を与えるのはなぜですか?

#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) 
+3

をアカウント 'argc'。 'strlen(argv [i])'は意味をなさない。 –

+0

'strlen()'を使用するときには、null終了バイトのカウントを与えないように注意する必要があります。 – LethalProgrammer

+0

どのように伝えることができますか? – User12345678

答えて

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?

関連する問題