我正在編寫一個大代碼,並且我準備了一個內存類,以便安全地創建和增長不同類型的數組。在這個類中,我記錄了分配新指針時使用sizeof分配的內存大小。但是,我不知道如何跟蹤內存分配。 讓我以另一種方式提出我的問題。例如,假設我們在代碼中的某些點分配一個新的數組:如何查找釋放的內存大小
double* array=new double[size];
和別的地方,我們要解除分配的內存不知道大小,通常我們會自動使用
delete [] array;
delete運算符釋放數組的內存,是否有任何方法可以確定它有多少個字節可用(假設我們不跟蹤大小)?
std :: vector會爲您節省那些麻煩(capacity * sizeof(T)) – Borgleader
特別是因爲數組是邪惡的;) – PoByBolek
如果您使用'new []'分配內存,實際上會在實際數組本身指示數組大小。 'delete []'讀取這些數據,以便知道需要多少次迭代。你可以閱讀,如果你想要一個hackish非便攜式答案哈哈。或者,用代碼重載分配器以跟蹤你想要的內容。 – Suedocode