1、free使用问题:一个指针当形参传入一个函数内部释放并置为NULL;但是因为只是实参的copy,所以外部依然可以调用,但其里面的内容不能保证;eg:
int * ptr;
ptr = malloc(sizeof(int));
/*调用函数释放*/
free_ptr(ptr);
printf("ptr:%d",*ptr);/*内容不能保证*/
/*依然可以操作该指针*/
*ptr = 4;
printf("ptr:%d",*ptr);
2、当传入一个指针需要对它进行赋值时,在函数内部不能使用临时变量,要不函数退出后变成非法变量;eg:
int func(int **ptr)
{
int a = 0;
*ptr = &a;
return 0;
}