读书人

循环体内开展动态内存分配是否会造成内

发布时间: 2013-01-19 11:41:36 作者: rapoo

循环体内进行动态内存分配是否会造成内存泄漏


while(1)
{
int *p=(int *)malloc(10*sizeof(int));
}

这样有没有问题,如果在循环内为数组中的元素赋值的话,下一次循环那些值是否保留?
[解决办法]
肯定会内存泄漏,在不断的消耗内存,而且没有办法释放。malloc的一定要用free释放
[解决办法]
malloc和free必须要成对啊,少年。

要不就在循环体内吧int *p释放,要不就把int *p存到某个地方,确定不用了再释放,不然直到程序退出都不会释放。
[解决办法]
引用:
用自己电脑试验了下,一运行电脑就不正常了(反映明显慢了许多)。用top查看内存使用情况,使用的内存维持在1.5-1.6g左右(我电脑是2g内存),这样是否就能说明发生了内存泄漏了?

用top查看内存使用情况,使用的内存维持在1.5-1.6g左右(我电脑是2g内存),这样是否就能说明发生了内存泄漏了?
这句话并不能说明内存泄露了,linux虚拟内存管理机制你去看看吧。
但是看你的代码,内存确实泄露了!

读书人网 >软件架构设计

热点推荐