arrays - 为什么数组吞下的元素多于其容量?
问题描述
我是 C 的新手。正在研究 Array。导师说括号中的数字定义了数组允许的内存大小。
例如,如果我定义数组
int luckyNumbers[10]
这个数组不能吞下超过 10 个元素。然而,它吞下了超过 10 个,尽管它仍然说它的大小为 10 个。
这就是我所做的
int main()
{
int luckyNumbers[10];
size_t n = sizeof(luckyNumbers)/sizeof(int);
printf("%d\n", n); // "10"
luckyNumbers[1] = 80;
luckyNumbers[2] = 80;
luckyNumbers[3] = 80;
luckyNumbers[4] = 80;
luckyNumbers[5] = 80;
luckyNumbers[6] = 80;
luckyNumbers[7] = 80;
luckyNumbers[8] = 80;
luckyNumbers[9] = 80;
luckyNumbers[10] = 80;
luckyNumbers[11] = 80;
luckyNumbers[12] = 90;
printf("%d\n", luckyNumbers[12]); // "90". working right
size_t n2 = sizeof(luckyNumbers) / sizeof(int);
printf("%d", n2); //still "10". why not 12?
return 0;
}
解决方案
推荐阅读
- node.js - 我安装了旧版本的 nodejs/npm 但 npm 不起作用
- google-cloud-dataflow - 提交失败时的数据流行为
- python - PLY 文件和 Ransac
- nan - 在 python 中使用 statsmodel 进行逻辑回归期间 LLR p 值为 nan
- android - 使用 ExternalProject_Add 编译 google/protobuf - Android
- python - 如何完全删除opencv?
- python - 如何确定贝塞尔曲线 t 值的理想增量大小
- graph - 具有关系的 Neo4j 递归查询
- javascript - 如何在 Angular 12 中将 xml 转换为 js 对象
- python - Python 在 git bash 上的 conda 环境中运行时挂起