次の C プログラムをループしようとすると、「Segmentation fault: 11」というエラーが表示されます。
#include <stdio.h>
main() {
int i;
char *a[] = {
"hello",
"how are you",
"what is your name"
};
for (i = 0; a[i][0] != '\0'; i++ ) {
printf("\n%s", a[i]);
}
}
しかし、for
ループ内のテストを次のように置き換えると、エラーは発生せず、すべて正常に動作します。
for (i = 0; i < 3; i++ ) {
printf("\n%s", a[i]);
}
a[i][0] != '\0'
テストが機能しない理由と、代わりに何をすべきかを誰かが説明してくれれば、本当にありがたいです。