我声明了一个只包含三个元素的int数组,但我注意到我可以访问更大的数组索引
int x[3];
int length = sizeof(x)/sizeof(x[0]);
printf("\n the length defined is %i but I can still setting and getting other indexes")
答案 0 :(得分:1)
使C快速的一个原因是它不对数组进行任何类型的边界检查。它希望程序员知道他们正在做什么以保持在适当的范围内。
如果不这样做,则意味着访问数组范围之外的部分内存,并导致undefined behavior。
答案 1 :(得分:0)
当访问大于数组长度的索引时,你实际做的是"入侵"您不应该访问的内存区域。这可能会导致应用程序出现意外行为或崩溃。