面试题答案
一键面试#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
int length = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < length; i++) {
printf("%d ", *(ptr + i));
}
printf("\n");
return 0;
}
在实际编程中,预防数组越界错误的方法通常有:
- 明确数组边界:在定义数组时,明确知道数组的大小,并在遍历或操作数组时使用该大小作为边界条件,如上述代码中使用
sizeof(arr) / sizeof(arr[0])
获取数组大小。 - 使用安全的库函数:例如,在字符串操作中,使用
strncpy
代替strcpy
,strncpy
可以指定复制的最大字符数,防止越界。 - 边界检查:在访问数组元素的地方添加边界检查逻辑,如在函数中对传入的数组索引进行判断,若越界则返回错误或进行适当处理。