未分配阵列上的编号
Number on non-assigned array
给定此代码:
#include <iostream>
using namespace std;
int main() {
int examplearray[] = {1,2,3};
for (int i = 0; i < 6; i++) {
cout << examplearray[i] << "t";
}
return 0;
}
我有以下输出: 1 2 3 3 4200928 6422336
我很确定这在某个地方得到了回答,但是我已经浏览了一段时间的Google,但我找不到对此的解释。我还没有为数组的第 4 和第 5 个位置定义一个值,我假设它的值将是 0 或 NULL .为什么它们有随机值?
当我尝试制作这样的代码时,我注意到了这一点:
for(int i = 0; examplearray[i] != 0; /* while it's not empty */i++){
/* do something */
}
我怎样才能在这个代码上做我想做的事情?
对于int examplearray[] = {1,2,3};
,数组的长度没有明确指定,那么将根据初始化器列表确定;结果是3
。因此,尝试访问第 4-6 个元素(根本不存在(是未定义的行为。
如果你假设数组的长度是6
你应该写int examplearray[6] = {1,2,3};
。在这种情况下,其余元素将被初始化为 0
。
如果您尝试越界访问数组索引,则它是C
和C++
中未定义的行为。这意味着无法保证会发生什么。
相关文章:
- OpenMP阵列性能较差
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- C++动态安全 2D 交错阵列
- 如何在数组中找到最小编号的索引号?
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 从较小的阵列到较大的阵列的元素级转换
- 贪婪算法编号列表
- 仅在大型阵列上出现合并排序分段错误
- 从阵列C++中删除重复项
- 阵列的大小在C++中是否灵活?
- 未分配阵列上的编号
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格