C语言中怎样清空内存动态分配的堆空间
发布网友
发布时间:2022-04-29 11:33
我来回答
共3个回答
热心网友
时间:2022-06-27 00:18
在C语言中,要在堆上分配空间,需要使用内存申请函数。一般用malloc。
void * malloc(int size);
可以申请一段长度为size字节的空间,并返回空间的首地址。
要清空分配的内存空间,也就是将该空间所有字节均赋值为0,可以使用memset函数。
该函数声明与string.h中,形式为
void memset(void *start, int value, int size);
如果要清空空间的首地址为p,大小为len,则可以调用
memset(p, 0, len);
热心网友
时间:2022-06-27 00:18
如果你真要修改内存分配,自己控制的话,可以去查下资料
placement new。STL里面很多都这样用。
热心网友
时间:2022-06-27 00:19
你调用一次malloc() 就有相应的一个free()
这两个是配对使用了 如果它们俩的数目不对肯定会出错的
没有一次性清空所有的动态申请的内存的函数,
必须严格按照malloc 、free配对使用
清空所花费的时间比排序本身还长 估计是你代码本身有问题