如果我错了,请纠正我。在下面的伪代码中,我为j
创建了空间。最后,我需要释放空间。但是,如果将j
重新分配给另一个变量,那么释放变量anotherJob
并不好,我会发现j
的内存泄漏,因为代码正在释放anotherJob
。我没错?
j=malloc(sizeof(struct jobDetails));
...
j=anotherJob;
...
free(j);
答案 0 :(得分:2)
是的,你是对的。除非你已将j
的原始值保存在其他地方,否则它将被泄露。你可能不想在这里释放anotherJob
,因为你不知道它来自哪里,或者它是否会在其他地方免费。