删除动态数组后,其绑定的某些值不会更改.为什么
After deleting a dynamic array, some values of its bound do NOT change. Why?
在 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
为什么数组的某些值仍然相同,假设数组的元素应该具有垃圾值?
您的代码在免费错误后具有访问权限。如果你修复了这个错误,谜团就会消失。真的就是这么简单。
相关文章:
- C++,为什么数组比矢量更快,使用更少的内存
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 为什么数组变量正在更新
- 为什么数组不打印第一个元素?
- 为什么数组到指针的输出不相关
- 为什么数组中对象的析构函数在被另一个对象替换时不被调用?
- 为什么数组的 GCC 聚合初始化首先用零填充整个事物,包括非零元素?
- C++ 为什么数组没有长度属性
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 为什么数组中需要常量大小
- c ,为什么数组元素自行更改
- 为什么数组元素必须具有相同的类型
- 为什么数组(字符串类型)的大小是 24 字节,带有单个空格元素
- 为什么数组从 0 而不是 1 开始?(C,C++)
- 为什么数组与 std::extent 第二个 imp 匹配
- 为什么数组在一个文件中打印,但在发送到另一个文件时却缺少数字
- 为什么数组变量可能无法初始化
- 当分配运算符的操作数左操作数时,为什么数组名称不腐烂到指针
- 为什么数组比向量快得多
- 为什么数组不填充?