1

如果我没有以 1 结束字符串或给它一个额外的元素以自动以 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 回答