申请到的内存可以再次申请否
现有已经malloc到的内存6MB,在这6MB内存里我想再次申请2MB内存,行的通不,求解释清楚一些 内存 malloc
[解决办法]
当然不能。
你申请内存,系统为你开辟一段空间,由于你是动态申请的所以,空间在堆里面,实际上系统是把这一个地址区域归你使用,这6M的内存随你怎么玩。如果你再次调用申请2M,系统依旧会检查剩余的空闲堆空间(刚才那6M属于被使用状态),如果有,就一样道理,再为你申请新的地址空间。
[解决办法]
可以的吧
void *realloc(void *mem_address, unsigned int newsize);
//用这个函数试试吧!
[解决办法]
那是不行的
除非用内存池进行管理
[解决办法]
那是不行了, 你需要释放掉原来的6M内存, 再重新申请8M, 但是如果运气好, 正好6M后面有大于2M的连续空间的话, 可能正好再次申请到的是原来的6M空间和后面追加了2M空间,