まず、これが以前に尋ねられた場合はお詫び申し上げます。私は正しい情報を見つけることができないようです。私はそれが思ったとして、次のコードは「300」に印刷されませんメモリ割り当ての前に動的に割り当てられた配列ポインタをコピーすることは可能ですか?
:しかし
#include <iostream>
int main()
{
int *array;
int *arrayCopy = array;
array = new int[4];
array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
std::cout << arrayCopy[2];
return 0;
}
、私はそれを次の行の下の行
int *arrayCopy = array;
を移動した場合には、ありません上記のコード。何故ですか?
(PS:メモリリークがあり、std :: vectorが優れていることを知っています...私はちょっと興味があります)。
ところで、それは300ない200 :) – Naveen
おっとを印刷します、ええ!良いキャッチ。 – Anthony
メモリリークはありません。ポインタを変更することによって、割り当てられたブロックが「失われた」ことはありません。 – paxdiablo