【发布时间】:2019-08-27 00:34:21
【问题描述】:
int x = 2;
int* ptr = &x;
free(ptr); //why is this an undefined behavior
free 将释放内存。这里*ptr 持有x 的地址。现在如果free(ptr) 指向x 的ptr 不再存在。但是如果这不是正确的方法,我会感到困惑
【问题讨论】:
-
你没有分配它,所以你不能释放它。
-
基本经验法则,每个
(m|c|re)alloc最终都必须跟一个free,除非您有正当理由不这样做。
标签: c