永发信息网

求解 内存分配(Memory Allocate) 问题

答案:2  悬赏:80  手机版
解决时间 2021-03-31 00:18
  • 提问者网友:送舟行
  • 2021-03-30 02:57
求解 内存分配(Memory Allocate) 问题
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-03-30 04:08
1 include stdlib.h instead
2 calloc 分配m个n字节的内存空间,该内存空间被置0
malloc 分配制定直接长内存空间,空间内容未置0
realloc 中如果第一个指针为NULL,等效malloc,如果第一个指针不为空,但是size=0,等效free,指针
,大小都不为0则重新根据内存分配算法挑选合适内存
3 double free 是有可能造成core dump的,free 后置NULL即可,即使free(NULL)也不会出问题,
if(NULL!=p){free(p);p=NULL;} a better way !!!追问高手,这三个函数原型是什么,我想看看参数列表追答1 void *calloc(size_t nmemb,size_t size);
2 void *malloc(size_t size);
3 void free(void*ptr);
4 void *realloc(void*ptr,size_t size);
全部回答
  • 1楼网友:長槍戰八方
  • 2021-03-30 04:42
1)malloc.h 是的,VC 6.0 用 #include 就可以了。
2)写法都对。用 malloc 或 calloc 与个人习惯 有关(各人喜欢,c语言历史有这2函数)。realloc 用于 随时可以 增加 动态分配 或 减小 动态分配 空间。另2个函数无此功能。
3) 加条件判断做释放: if ( p) free(p);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯