我是 C++ 新手,我刚刚了解了动态内存和内存泄漏。
据我了解,当创建一个指针(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移动到动态内存时释放?它是如何工作的?