如果我通過下面一行獲取一塊內存。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不,你不是,只是因爲它看起來像它的作品並不意味着它不是未定義的。 –