new的问题究竟在哪里呢?实际上问题出在new和delete的结合使用上。考察下面程序中内存分配和释放过程: 在每个循环步中,我们创建了两个Small,在此期间,我们还分配了一个Big,然后又释放了它。考察这段代码,每执行一个循环步,我们可能期望“消耗” 2*sizeof(Small)个字节的内存( ...
分类:
编程语言 时间:
2017-11-18 13:39:57
阅读次数:
202
堆内存释放,是从堆顶开始。那么如果堆中间的一块区域,大部分内存都释放了,堆顶还有一些会怎么样呢?
我们来看个例子:
#include
#include
#include
#include
int main()
{
char *p[11];
int i;
for(i=0;i
{
p[i]=(char *)malloc(1024*2);
strcpy(p[i],"12...
分类:
其他好文 时间:
2015-04-13 16:40:36
阅读次数:
624