您的位置:首页 > 其它

C疑问:(一)realloc(p,0)真的会释放之前的内存吗?

2017-03-26 11:33 323 查看
  问题描述:很多资料都写着realloc()第一个参数有效,第二个参数为0时,之前的内存会被释放掉。MSDN的描述见下



   但是在VS上用下例测试返回值时,意外发现之前的内存仍然可以使用。在Linux上得到了同样的结果。还没找到原因。希望有大神可以给指导

#include <stdio.h>
#include <stdlib.h>
int main( )
{
int *pAlloc=(int*)malloc(sizeof(int));
printf("0x%x\n",pAlloc);
int *pRea=(int*)realloc(pAlloc,0);
printf("0x%x\n",pAlloc);
*pAlloc=1;
printf("%d\n",*pAlloc);
printf("0x%x\n",pRea);
return 0;
}
输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: