Ich bin auf der Suche nach der bequemsten/besten/intelligentesten Möglichkeit für mehrere Speicherfreigabe. Nicht ganz sicher, ob das beste Erklärung ist da draußen, aber hier ist ein Beispiel, das zeigen, was ich tun möchte:Die bequemste Möglichkeit, mehrere Speicherzeiger aufzuheben?
void func()
{
int* ptr1 = malloc(1);
if(ptr1 == NULL)
{
//...
}
int* ptr2 = malloc(1);
if(ptr2 == NULL)
{
//...
free(ptr1);
}
int* ptr3 = malloc(1);
if(ptr3 == NULL)
{
//...
free(ptr2);
free(ptr1);
}
//code...
}
Das einzige, was bis zu meinem Sinn kommt Array mit Fahnen gefüllt, wenn das Flag angehobene besondere Erinnerung muss befreit werden. Gibt es einen anderen bequemeren Weg, dies zu tun? Sie können sich vorstellen, wie oft ich free()
wiederholen muss, wenn mehr malloc()
-ing benötigt wird.
sie in einem Array Setzen der NULL beendet/initialisiert und iteriert dieses Array. –
Ich hoffe, es gibt eine andere Möglichkeit, das zu tun, außer mit einem Array. –
'ptr1 * = malloc (1);' ist kompletter Unsinn. Bitte posten Sie echten Code. – joop