【发布时间】:2021-07-14 12:16:52
【问题描述】:
int main()
{
int *dizi = new int[3];
int *ptr = new int;
*dizi = 1;
*(dizi + 1) = 2;
*(dizi + 2) = 3;
ptr = (dizi + 2);
delete ptr;
for (int i = 0; i < 2; i++)
{
cout << *(dizi + i) << endl;
}
delete[] dizi;
}
我想返回 dizi[2] 值但我不能,它只是崩溃了我该怎么做,你能给我一个例子吗?
【问题讨论】:
-
delete ptr在new[]未返回的内存地址上被调用。那是未定义的行为。ptr在这段代码中完全没用,应该完全删除。 -
如果你的意思是要从数组中删除一个元素,答案是不可能的。
标签: c++ memory memory-management console dynamic-memory-allocation