【发布时间】:2017-07-21 06:50:21
【问题描述】:
我做了一个动态数组(例子):
int *a;
a = new int[3];
a[0] = 10; a[1] = 20; a[2] = 30;
比我创建一个存储指针的向量:
vector<int*> pa;
pa.push_back(&a[0]);
使用“delete[] a;”删除(释放)内存后,我仍然可以访问我 push_backed 的元素。 (cout
为什么会这样?当我“delete[] a”时,它只删除了指向元素的指针,但元素仍然可以访问?
【问题讨论】:
-
不要错过这个关于内存和未定义行为的精彩答案。 stackoverflow.com/questions/6441218/….
标签: c++ arrays pointers dynamic