Mi chiedevo se è possibile verificare se un puntatore passato in una funzione è stato allocato da malloc/calloc/realloc?Posso controllare se un puntatore è stato allocato da malloc/calloc/realloc?
int main(){
struct something o;
struct something *a;
a = malloc(sizeof(struct something));
freeSome(&o);/*This would normally throw an (corruption?) error*/
freeSome(a);/*This is fine*/
}
void freeSome(struct something * t){
if (/*expression here*/){
free(t);
}
}
ho capito che di solito si controlla per vedere se t == NULL
, ma mi stavo chiedendo se era possibile vedere se la memoria è stata assegnata per il puntatore data.
No, non è possibile, ecco perché è necessario inizializzare un puntatore su NULL. –