假设我分配了一块动态内存,并且它成功了。稍后,这段内存可能不再属于用户。是否有可能确定用户是否还拥有这块动态内存?即。
#include <stdio.h>
#include <stdlib.h>
int main(){
int* ptr = malloc(sizeof(int));
/* ... ptr may have been freed ... */
belongToUser(ptr); /* <- some sort of check? */
}
答案 0 :(得分:0)
有一种(既不干净也不安全)检查的可能性:
如上所述,我从不建议检查,而是编写记住(pointer = NULL
)的C程序。