复习一下:
常见的错误:
1.可能返回的是空指针
2.对动态开辟的内存越界访问
3.非动态开辟内存却用free释放
4.使用free释放动态开辟内存的一部分
5.free多次释放
如果加了p=NULL的话
free(p)相当于啥也不干 程序起码不会崩掉
6.动态开辟内存忘记释放(内存泄漏)——>只申请不释放
对几道经典例题的分析
1.
1.1p与str的区别
1.2没有free
那怎么改呢?
2.返回栈空间地址的问题
下面是正确的:
但是区别一下,右边这个就不对了
值可能会被改掉的(函数栈帧)
3.内存泄漏问题
4.非法访问