[C指针]安全使用指针

2019-04-18  本文已影响0人  AkuRinbu

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
第7章 安全问题和指针误用

安全使用指针

类型定义

类型定义代替宏定义是另一个好习惯。类型定义允许编译器检查作用域规则,而宏定义不一定会。

typedef int* PINT;
PINT ptr1, ptr2;

检查返回值

malloc这类函数时一定要检查返回值,否则可能会导致程序非正常终止。下面说明一般的方法:

float *vector = malloc(20 * sizeof(float));
if(vector == NULL) {
    // malloc分配内存失败
} else {
    // 处理vector 
}

星号

在原声明int *pi = &num中,星号把变量声明为指针,而不是解引操作。

传递数组长度

将数组传递给函数时,一定要同时传递数组长度。这个信息帮助函数避免越过数组边界。

int buffer[20];
int *pbuffer = buffer;
for(int i=0; i<sizeof(buffer); i++) {
    *(pbuffer++) = 0;
}
上一篇 下一篇

猜你喜欢

热点阅读