1

文字列を NULL ターミネータで終了させなかったり、自動的に 1 で終了する追加の要素を指定しなかった場合、この文字列を NULL ターミネータまでループできるのはなぜですか?

char buf[5];
buf[0] = 'H';
buf[1] = 'e';
buf[2] = 'l';
buf[3] = 'l';
buf[4] = 'o';

char *p = buf;

for (p = buf; *p != '\0'; p++)
   ch_printf(ch, "%c\n", *p);

私は C の初心者で、独学を試みているので、私の愚かさを許してください :)

ご協力ありがとうございました。

4

1 に答える 1

0

未割り当てのメモリにアクセスしようとしているため、buf[5] の結果は null です

于 2014-06-21T13:10:48.973 に答える