首页 > 解决方案 > c++ 中的空数组显示了荒谬的行为

问题描述

编码:

int arr[] = {};
int n;
n = 7;
arr[0] = 15;
cout << n;

给出输出:15

为什么不7呢?

标签: c++

解决方案


代码中的第一行创建一个 size 数组0

内存中的下一个变量是n,这就是您的程序覆盖它的原因。

您需要将第一行修复为:

int arr[1] = {};

就像上面评论中提到的人一样,它实际上取决于您的编译器。


推荐阅读