C言語で動的なメモリの確保・解放は、malloc関数とfree関数で行いますが、C++ではnew演算子とdelete演算子を使います。
new演算子:メモリの動的確保
delete演算子:メモリの解放
【sample code】
---------------------------------------------------------------------------------------
#include <iostream>
using namespace std;
int main (void)
{
int *pArray;
pArray = new int[10]; // int型の領域を動的確保
//アドレスを表示 → printf-1
printf(" pArray = %p\n", pArray);
printf(" pArray + 1 = %p\n", pArray + 1);
printf(" pArray + 2 = %p\n", pArray + 2);
for (int i=0; i < 10; i++)
{
pArray[i] = i * 100; // 値を表示 → printf-2
printf(" pArray[%d] = %d\n", i, pArray[i]);
};
delete[] pArray; // 動的に確保した領域の解放
}
---------------------------------------------------------------------------------------
【printf】
・ printf-1
pArray = 0x7fe011c039f0
pArray + 1 = 0x7fe011c039f4
pArray + 1 = 0x7fe011c039f8
・ printf-2
pArray[0] = 0
pArray[1] = 100
:
pArray[9] = 900
【point】
・new演算子は、その直後に書いた型の領域を確保
→上のコードではint型の領域を確保
・”動的とは”
【reference】
0 件のコメント:
コメントを投稿