Chinaunix首页 | 论坛 | 博客
  • 博客访问: 83178
  • 博文数量: 32
  • 博客积分: 1425
  • 博客等级: 上尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-12 09:38
文章分类

全部博文(32)

文章存档

2011年(3)

2010年(4)

2007年(1)

2006年(22)

2005年(2)

我的朋友
最近访客

分类: C/C++

2006-03-13 15:35:47

realloc 不能保证重新分配后的内存空间和原来的内存空间指在同一内存地址, 它返回的指针很可能指向一个新的地址。
  所以,在代码中,必须把realloc返回的值,重新赋给 p 如:
  p = (char *) realloc (p, old_size + new_size);
  
  甚至,你可以传一个空指针(0)给 realloc ,则此时realloc 作用完全相当于malloc。
  int* p = (char *) realloc (0,old_size + new_size); //全新分配一个内存空间,作用完全等同于以下这行: int* p = (char *) malloc(old_size + new_size);
  
  calloc(len, size)与malloc相似,参数len为申请地址的单位元素长度,size为元素个数,如:
  char* p;
  p=(char*)calloc(sizeof(char),1000);
  
阅读(1266) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~