循环体内进行动态内存分配是否会造成内存泄漏
while(1)
{
int *p=(int *)malloc(10*sizeof(int));
}
这样有没有问题,如果在循环内为数组中的元素赋值的话,下一次循环那些值是否保留?
[解决办法]
肯定会内存泄漏,在不断的消耗内存,而且没有办法释放。malloc的一定要用free释放
[解决办法]
malloc和free必须要成对啊,少年。
要不就在循环体内吧int *p释放,要不就把int *p存到某个地方,确定不用了再释放,不然直到程序退出都不会释放。
[解决办法]
用top查看内存使用情况,使用的内存维持在1.5-1.6g左右(我电脑是2g内存),这样是否就能说明发生了内存泄漏了?
这句话并不能说明内存泄露了,linux虚拟内存管理机制你去看看吧。
但是看你的代码,内存确实泄露了!