- 空指针判断:
在使用指针之前,先判断指针是否为空指针(即指针是否为NULL)。可以使用if语句或者三目运算符进行判断,例如:
int *ptr = NULL;
if (ptr == NULL) {
printf("ptr is a null pointer\n");
}
- 边界检查
在使用数组时,需要检查数组下标是否越界。可以使用if语句或者三目运算符进行判断,例如:
int arr[5] = {1, 2, 3, 4, 5};
int index = 6;
if (index >= 0 && index < 5) {
printf("arr[%d] = %d\n", index, arr[index]);
} else {
printf("Invalid index\n");
}
- 指针数组的边界检查:
在使用指针和数组时,需要检查指针是否越界,并且检查指针所指向的内存是否属于数组。可以使用if语句或者三目运算符进行判断,例如:
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = &arr[2];
if (ptr >= arr && ptr < arr + 5) {
printf("ptr points to arr[%d] = %d\n", ptr - arr, *ptr);
} else {
printf("ptr is out of bounds\n");
}
https://zhuanlan.zhihu.com/p/356292164
https://cloud.tencent.com/developer/article/2377259
https://csguide.cn/cpp/memory/understanding_of_pointers.html