假設我分配了一塊動態內存,並且它是成功的。稍後,有可能這段內存不再屬於用戶。是否有可能確定用戶是否仍擁有這塊動態內存?即是否可以在運行時確定誰擁有一段動態內存?
#include <stdio.h>
#include <stdlib.h>
int main(){
int* ptr = malloc(sizeof(int));
/* ... ptr may have been freed ... */
belongToUser(ptr); /* <- some sort of check? */
}
如果你想知道指針是否已經被釋放,只需在釋放指針後將它設置爲NULL即可。稍後,如果它是'NULL',那麼你知道它已經被釋放。 – muXXmit2X
簡答:不,你不能這樣做。你需要跟蹤你分配的內存。一旦通過'malloc'分配的指針被釋放,它就會永遠消失。 –
除非你釋放它,否則該對象屬於該過程。你什麼意思? – Olaf