如果我通过下面一行获取一块内存。C++中指针变量的内存释放
int* a = new int[10];
然后释放内存,该代码将是
delete [] a;
但是,如果我采取单个存储器段的指针像下面
int* a = new int;
然后插入的阵列数据如下。
for(int i=0;i<10;i++)
{
a[i]= i ;
}
所以以释放所述第一存储器区段指针“一”指向,代码会像以下
delete a;
但是在这里,我插入从存储器更多数据指针“a”指向。所以我在这里实际使用了10个内存段。我怎样才能释放所有这10个内存?请帮我解答。
这是未定义的行为(你不能这样做)。 – 2017-07-17 20:10:10
但是在代码块中,我能够从分配的单个内存开始插入数据的数组。 –
@hasibuzzamanchowdhury不,你不是,只是因为它看起来像它的作品并不意味着它不是未定义的。 –