Verwendung von Realloc in einer Funktion in C [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Der dynamische Speicherzugriff funktioniert nur innerhalb der Funktion 1 Antwort

Aufbauend auf dem, was ich hier gelernt habe:Dynamisches Array über Funktionen in C bearbeiten.

void test(int data[])
{
    data[0] = 1;    
}    

int main(void)
{    
    int *data = malloc(4 * sizeof *data);

    test(data);

    return 0;
}

Das funktioniert gut. Ich versuche aber auch zu benutzenrealloc in einer Funktion.

void increase(int data[])
{
    data = realloc(data, 5 * sizeof *data);    
}

Dies entspricht, aber das Programm stürzt ab, wenn es ausgeführt wird.

Frage

Wie soll ich realloc in einer Funktion verwenden?

Ich verstehe, dass ich das Ergebnis von zuweisen sollterealloc auf eine Variable und überprüfen Sie, ob es istNULL zuerst. Dies ist nur ein vereinfachtes Beispiel.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage