Czy mogę sprawdzić, czy wskaźnik został przydzielony przez malloc / calloc / realloc? [duplikować
To pytanie ma już odpowiedź tutaj:
Sprawdź, czy wskaźnik wskazuje przydzieloną pamięć na stercie 10 odpowiedziCzy możesz ustalić, czy ciąg znaków można zwolnić w C? [duplikować 5 odpowiedziZastanawiałem się, czy można sprawdzić, czy wskaźnik przekazany do funkcji został przydzielony przez 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);
}
}
Rozumiem, że zwykle sprawdzasz, czyt == NULL
, ale zastanawiałem się, czy można sprawdzić, czy pamięć została przydzielona dla danego wskaźnika.