次のコードでは:
#include <stdio.h>
#include <string.h>
int main (int argc, const char * argv[]) {
char input[20];
fgets(input, sizeof(input), stdin);
char * pch;
pch = strtok(input, " ");
int i = 0;
int nums[3];
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok(NULL, " ");
//nums[i] = atoi(pch);
i++;
}
return 0;
}
の入力
1 2 3
与えます:
1
2
3
コメント行のコメントを外すと、次のようになります。
1
2
3
Segmentation fault: 11
この1行でセグフォルトが発生するのはなぜですか?