c++ - c++ 中的空数组显示了荒谬的行为
问题描述
编码:
int arr[] = {};
int n;
n = 7;
arr[0] = 15;
cout << n;
给出输出:15
为什么不7
呢?
解决方案
代码中的第一行创建一个 size 数组0
。
内存中的下一个变量是n
,这就是您的程序覆盖它的原因。
您需要将第一行修复为:
int arr[1] = {};
就像上面评论中提到的人一样,它实际上取决于您的编译器。
推荐阅读
- sql - 大于表达式中的 SQL 多列
- mysql - log4jdbc可以和spring boot一起使用吗?
- groovy - 在groovy中将十六进制字符串转换为二进制
- matlab - ode45 Matlab 中的 NaN 响应
- system-verilog - always 块中“复合”线的组合分配
- mongodb - 如何让 mongo-express 在 docker-compose 中等待 mongo
- homebrew - Brew 安装 gcc 错误 - 管道损坏 (Errno::EPIPE)
- r - XLConnect 工作表名称太长
- c# - Unity - 仅在动画停止时更改角色
- json - Jq 变量添加额外的\