删除动态数组后,其绑定的某些值不会更改.为什么

After deleting a dynamic array, some values of its bound do NOT change. Why?

本文关键字:为什么 数组 动态 绑定 删除      更新时间:2023-10-16

在 c/c++ 中:

delete运算符用于删除动态数组,但是在使用delete运算符删除数组然后打印它后,某些值仍然相同。 为什么 ?- 我希望这些值是垃圾。

#include <iostream>
using namespace std;
int main()
{
    int n=5;
    int*A=new int[n];
    for (int i=0;i<n;i++)
       A[i]=i+1;
    delete [] A; //deleting 'A' array
    for (int i=0;i<n;i++)
       printf("%d ",A[i]);
}

输出将是:

0 0 3 4 5

如果我们删除delete [] A;则输出将为:

1 2 3 4 5

为什么数组的某些值仍然相同,假设数组的元素应该具有垃圾值?

您的代码在免费错误后具有访问权限。如果你修复了这个错误,谜团就会消失。真的就是这么简单。