malloc并在使用重新分配指针时自由

时间:2014-01-02 17:33:14

标签: c

如果我错了,请纠正我。在下面的伪代码中,我为j创建了空间。最后,我需要释放空间。但是,如果将j重新分配给另一个变量,那么释放变量anotherJob并不好,我会发现j的内存泄漏,因为代码正在释放anotherJob。我没错?

j=malloc(sizeof(struct jobDetails));
...
j=anotherJob;
...
free(j);

1 个答案:

答案 0 :(得分:2)

是的,你是对的。除非你已将j的原始值保存在其他地方,否则它将被泄露。你可能不想在这里释放anotherJob,因为你不知道它来自哪里,或者它是否会在其他地方免费。