Bri*_*waj 1 c++ pointers linked-list dynamic-memory-allocation delete-operator
我正在用 C++ 编写一个链表程序。为了实现这个概念,我在全局创建了一个指针“start”,指向列表的第一个元素。
程序完成后,我尝试通过使用 start 和另一个本地声明的指针“p”访问连续节点来删除动态分配的所有内存以防止内存泄漏。在这里,我使用了一个指向相同正确地址的指针,但这个指针不是用于内存分配的指针,而是像任何普通指针一样在本地声明。
我的问题是 - 是否可以使用指向同一位置的普通指针来删除动态分配的内存?
是的你可以。这是有效的:
int* p = new int;
int* q = p;
delete q;
Run Code Online (Sandbox Code Playgroud)
使用new[]时的等效项:
int* p = new int[123];
int* q = p;
delete[] q;
Run Code Online (Sandbox Code Playgroud)
替换int*为您的指针类型。是否将指针设置为 afternullptr有待讨论。
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |