我只是尝试为 c 字符串分配 10 个字节并在没有分配任何内容的情况下打印。我打印了 cstring 的大小。但是结果和我想象的完全不同。由于 malloc 只分配原始内存,我认为它会打印任何垃圾值。而且由于我试图打印 c 字符串的大小,我认为行为应该是未定义的。但他们都打印空字符我认为这是我的代码。
int main(void)
{
int i;
char * c = (char *)malloc(10);
for(i=0; i<20; ++i)
{
printf("%c.\n", *(c+i));
}
return 0;
}
我看到了 20 行“。”。谁能解释一下?我在linux下跑过这个,用的gcc最新版 谢谢