我有一個類A
和我創建了一個指針:如何分配內存以及如何釋放內存?
A * const q = reinterpret_cast<A * const>(new char[2 * sizeof(A)]);
,我有2個OBJETS:
new (q)A;
new (q + 1) A;
如果我刪除指針這樣的:
delete q;
它被調用有一次的破壞者A
delete[] reinterpret_cast<char *>(q);
還有沒有~A()
delete q; delete (q+1);
呼叫沒有馬瑟秩序崩潰delete [] q
也崩潰
正確的方法,我覺得是這樣的:
q->~A();
q[1].~A();
delete[] reinterpret_cast<char *>(q);
誰能告訴我,爲什麼和內存分配/釋放是怎麼回事?
所以它可能來自其他地方,這就是爲什麼'reinterpret_cast (new char [2 * sizeof(A)]''被使用? –