1、尽量显式地指定数组的边界
#define MAX 10
…
int a[MAX]={1,2,3,4,5,6,7,8,9,10};
在 C99 标准中,还允许我们使用单个指示符为数组的两段“分配”...2、对数组做越界检查,确保索引值位于合法的范围之内
传递数组参数的时候,一定要带上传入数组的长度,比如:
void Init(int arr[],size_t arr_len)
{
size_t...i=0;
for(i=0;i<arr_len;i++)
{
arr[i]=i;
}
}
arr_len类型一定要无符号,避免负数的副作用。...3、获取数组的长度时不要对指针应用 sizeof 操作符。
单地讲,sizeof 是一个单目操作符,不是函数。...其作用就是返回一个操作数所占的内存字节数
下面的函数中,使用sizeof,以为是对的,其实,arr传进来的时候,已经退化为指针,所以等同于
void Init(int *arr)。