1、向null地址处copy数据
char *str = NULL;
strcpy(str,"aaaaabbbbb");
错误!
NULL是操作系统保护的空间,不能往里面拷贝数据;
2、void Swap(int a,int b)
//错误案例
//不能实现实参a,b的互换
void Swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp ;
}
在函数调用时,把实参取地址传给形参
用1级指针形参,可以间接修改0级指针(实参)的值
用2级指针形参,可以间接修改1级指针(实参)的值
.
.
.
用n级指针形参,可以间接修改n-1级指针(实参)的值
正确案例:
void Swap(int *a,int *b)
{
//int *tmp = NULL; 向null地址处copy数据,出错;解决办法如下行代码所示
int *tmp = (int *)malloc(sizeof(int));
*tmp = *a;
*a = *b;
*b = *tmp ;
free(tmp);
}