C++のnewとdeleteの使用方法
C++において、newとdeleteがメモリを動的に確保・開放する演算子。
- new 演算子を用いて動的にメモリを確保する
int* p = new int; // 分配一个int类型的内存空间,并将其地址赋给指针p
この例では、new演算子はヒープ上にint型の大きさのメモリ領域を確保し、そのメモリのアドレスを返します。そして、そのアドレスをポインタpに代入することで、そのメモリ領域を指し示すようにします。
動的配列を必要に応じて使用する場合、以下の構文を使用します。
int* arr = new int[10]; // 分配一个包含10个int元素的数组
- deleteを用いてメモリを解放する:
delete p; // 释放指针p所指向的内存空间
この例では、`delete` 演算子は `p` が指すメモリ領域を解放し、そのメモリを再利用します。
動的配列を解放する際は、delete[]演算子を使用する必要がある
delete[] arr; // 释放动态分配的数组arr所占用的内存空间
new演算子で確保した領域はdelete演算子で必ず解放する必要があることに注意してください。さもなければメモリリークが発生します。また、delete演算子はnew演算子で確保したメモリ領域のみに使用でき、静的に確保した領域やスタック上の領域には使用できません。