私は自分が間違っていることを理解できないようです。私は単に文字のリストを処理し、それらを印刷しようとしています。
char *name[] = {"RGS", "O", "NRGY", "SIG", "BML-O", "BHI", "KSU", "ORN"};
void function() {
int i;
//for (i =0; i<sizeof(name) / sizeof(char); i++) {
for (i =0; name[i] != NULL; i++) {
printf ("%s \n", name[i]);
}
}
最初のforループ(コメントアウトされたもの)を使用すると、リストが出力されますが、最後に2つの項目があり(NULL)
、セグメントフォールトが発生します。2 番目の for ループ (コメント解除されたもの) を使用すると、すべてが出力されますが、セグメント エラーも発生します。
出力:
RGS
O
NRGY
SIG
BML-O
BHI
KSU
ORN
Segmentation fault: 11
コードをコンパイルするときにエラーは発生しません( gcc ./learningC.c
)。この関数をコメントアウトしてもエラーは発生しません(コードのこの領域に問題があると思います)。私は何が間違っているのだろうか?