free(p)你得指定需要free的指针。释放就是将内层块的控制权交换给操作系统你这代码已经出问题了,p++以后,p的值被修改了,已经不是上面申请的内存块的首地址了。free(p)也是会出现内存泄漏了
free(--p)p的地址已经被你改了,你写free(p)那地址不正确写free(p++)就更错误了,++是个运算符,你把p++当变量名吗
买椟还珠不行;得买椟还椟,买珠还珠。