Мне было интересно, можно ли проверить, был ли указатель, переданный в функцию, назначаться 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);
}
}
Я понимаю, что обычно вы проверяете, есть ли t == NULL
, но мне просто интересно, можно ли увидеть, была ли выделена память для данного указателя.