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 odpowiedzi

Zastanawiał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.

questionAnswers(2)

yourAnswerToTheQuestion