传递的应该是变量的地址而非变量本身,错误使用会造成引用坏指针的错误
``` 1) scanf("%d",&val); (√) 2) scanf("%d",val); (x) ``` ## 不安全的函数使用不安全的函数时应当注意避免栈溢出,尽量使用它的安全版本;
常见不安全的有strcpy,sprintf等
``` 1) fgets(buf,bufsize,fp); (√) 2) gets(buf); (x) ``` ## 指针大小指针与它所指向的数据不一定具有相同大小
``` 1) int **A = (int **)malloc(n*sizeof(int*)); (√) 2) int **A = (int **)malloc(n*sizeof(int)) (x) ```