【发布时间】:2011-11-19 17:15:08
【问题描述】:
我尝试运行以下代码:
int main(){
char *ptr = (char*)malloc(sizeof(char)*20);
ptr[5] = 'W';
ptr[0] = 'H';
std::cout<<ptr<<std::endl;
return 0;
}
当我使用 GCC 4.3.4 时,我得到“H”作为输出。 Kernighan & Ritchie 的C 编程语言一书说 malloc() 返回未初始化的空间,在这种情况下,输出应该是一些未定义的值。我的输出只是 ptr[1] 为 '\0' 巧合的结果吗?
【问题讨论】:
-
This 可能适合您阅读。
-
sizeof(char)根据定义始终为1。
标签: c++ memory-management malloc