说说使用指针需要注意什么?
参考回答
1.定义指针时,先初始化为NULL。
2.用malloc或new申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内
存。
3.不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。
4.避免数字或指针的下标越界,特别要当心发生“多1”或者“少1”操作
5.动态内存的申请与释放必须配对,防止内存泄漏
6.用free或delete释放了内存之后,立即将指针设置为NULL,防止“野指针”
答案解析
(1)初始化置NULL
(2)申请内存后判空
(3)指针释放后置NULL
```cpp
int *p=NULL;//初始化置NULL
p=(int*)malloc(sizeof(int)*n);//申请n个int内存空间
assert(p!=NULL);//判空,防错设计
p=(int*)realloc(p,25);//重新分配内存,p所指向的内存块会被释放并分配一个新的内存地址
free(p);
p=NULL;//释放后置空
int *p1=NULL;//初始化置NULL
p1=(int*)calloc(n,sizeof(int));//申请n个int内存空间同时初始化为0
assert(p1!=NULL);//判空,防错设计
free(p1);
p1=NULL;//释放后置空
int *p2=NULL;//初始化置NULL
p2=new int[n];//申请n个int内存空间
assert(p2!=NULL);//判空,防错设计
delete[] p2;
p2=nullptr;//释放后置空
```