【发布时间】:2020-08-12 01:32:19
【问题描述】:
假设我有 2 个指向同一个对象的指针。
int * a = malloc(sizeof(int));
*a = 5;
int * b = a;
free(a);
a = NULL;
此时我知道a == NULL 但b 仍然指向那个已被释放的地址。有没有可能通过b知道内存已经被释放了?
场景是我正在运行单元测试,我想确保在正确的时间在正确的条件下释放一些结构,因此我想避免仅仅为了支持测试而添加基础设施。
【问题讨论】:
-
我不知道。你这样做的动机是什么?您可以创建一个结构来包含它并添加一个
has_been_freed标志。 -
@ggorlen 我将添加更多信息,以便您了解我为什么不添加更多基础架构。
标签: c pointers segmentation-fault