私は C を学んでいて、これをどのように表現すればよいかわかりませんが、次のコードの 11 行目のコメントを解除すると、このプログラムが壊れるのはなぜですか?
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc: %d\n", argc);
char *states[] = {};
int i = 0;
while(i < argc) {
printf("arg %d: %s\n", i, argv[i]);
//states[i] = "test";
i++;
}
return 0;
}
この行のコメントを外してプログラムを実行すると、次のようになります。
greggery@Lubu:~/code$ ./myprog aaa bbb ccc
argc: 4
arg 0: ./lc
arg 1: aaa
なぜループstates[i] = "test";
を壊すのですか?while
コメントアウトすると、すべての引数が表示されます。