【发布时间】:2011-05-30 21:43:06
【问题描述】:
当我尝试下面的代码时,它工作正常。我错过了什么吗?
main()
{
int *p;
p=malloc(sizeof(int));
printf("size of p=%d\n",sizeof(p));
p[500]=999999;
printf("p[0]=%d",p[500]);
return 0;
}
我尝试使用 malloc(0*sizeof(int)) 或其他任何方法,但效果很好。只有当我根本不使用 malloc 时,程序才会崩溃。因此,即使我为数组 p 分配 0 内存,它仍然可以正确存储值。那么为什么我还要打扰 malloc 呢?
【问题讨论】:
-
尝试用一个非常大的数字替换 500 .....
-
是的,它会因大量数字而崩溃。感谢所有回答的人。
标签: c malloc memory-corruption