我如何在c中获取数组的长度

How can i get the length of an array in c

我已经声明了一个只有三个元素的 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")

当访问一个大于数组长度的索引时,你实际上在做的是"invade"一个你不应该访问的内存区域。这可能会导致您的应用程序出现意外行为或崩溃。

使 C 语言快速的原因之一是它不对数组进行任何类型的边界检查。它希望程序员知道他们正在做什么以保持在适当的范围内。

如果不这样做意味着访问数组范围之外的一部分内存并导致 undefined behavior