C:确保从数组返回的元素是正确的

And*_*ech 1 c arrays

假设我们有这段C代码:

int x[] = {1, 2, 3, 4, 5};

printf("%d", *(x + 1)); //prints 2
printf("%d", *(x + 500)); //prints 7209065 (...?)
Run Code Online (Sandbox Code Playgroud)

正如你从第二次调用中看到的那样,它仍然会返回一些东西......但它是垃圾.

所以我问,你如何在C中处理这样的情况?也就是说,你怎么知道返回的元素是否真的是数组中存在的元素还是只是垃圾?

Rob*_*Rob 9

添加另一个包含数组长度的变量,每当您想要访问数组时,请确保您在数组的范围内.