私は c++ を初めて使用し、動的メモリとメモリ リークについて学びました。
私が理解していることから、pointer( int *ptr = new int
) を作成してから、彼が指しているアドレスを変更すると、古いアドレスがまだ存在/割り当てられています。(私が間違っている場合は修正してください)。
だから私はこれについて考えました:
int *ptr;
ptr = new int;
最初のptrはランダムな(またはそうではない)アドレスで埋められ、次にそれを変更すると、古いアドレスが残りますか?このコードを試してみると:
int *ptr;
cout << ptr << endl ;
ptr = new int;
cout << ptr << endl ;
私は得る:
0x401a4e
0x6d2d20
0x401a4e はメモリ リークの一部ということですか? それとも、ptr が動的メモリに移動するときに解放されますか? それはどのように機能しますか?