感谢您注意到我的问题。
在C Primer Plus中,首先写道:
free()
的参数应该是由malloc()
分配的内存块的指针;您不能使用free()
来释放其他方式分配的内存。
这意味着只有一个malloc()
,一个且仅有一个free()
。
但是后来它又说:
使用与
malloc()
不同的指针变量使用free()
没有问题;必须一致的是指针中存储的地址。
这似乎与第一个声明相矛盾。
因此,我的理解是只要一对malloc()
和free()
共享相同的地址,就不会出现错误,指针的名称并不重要。我理解正确吗?