Dalam C , peruntukan dan pemadaman memori memainkan peranan penting dalam mengurus memori dinamik. Walaupun pengendali "baru" dan "padam" standard biasanya digunakan, "peletakan baharu" dan "padam" menyediakan pendekatan khusus untuk memperuntukkan dan memadamkan memori.
Contoh coretan kod yang dibentangkan menimbulkan persoalan tentang kaedah yang betul untuk memadamkan memori yang diperuntukkan menggunakan "peletakan baharu." Dalam kod, memori diperuntukkan dengan baris:
void *mem = ::operator new(sizeof(Buffer) + strlen(charString) + 1);
dan kemudian objek "Penimbal" diletakkan di lokasi ingatan ini menggunakan "peletakan baharu":
Buffer* buf = new(mem) Buffer(strlen(charString));
Timbul persoalan sama ada hendak memadamkan memori menggunakan:
delete (char*)buf;
atau ringkasnya:
delete buf;
Untuk memadamkan memori yang diperuntukkan dengan betul, adalah penting untuk mematuhi garis panduan khusus:
buf->~Buffer();
::operator delete(mem);
Deallocation Betul:
Kaedah yang betul untuk memadamkan memori yang diperuntukkan adalah seperti berikut:
buf->~Buffer(); ::operator delete(mem);
Dengan mengikut langkah-langkah ini, anda memastikan bahawa memori yang diperuntukkan dengan "peletakan baharu" diagihkan dengan betul, mengelakkan kemungkinan kebocoran memori.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Memori yang Diperuntukkan dengan \'peletakan baharu\' dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!