Hi,
wie ist das mit der free Funktion?
In meinem Programm sind alle Arrays über die malloc Funktion erstellt. Jetzt habe ich gelesen, ich soll danach, wieder den Befehl free benutzen.
Die Arrays sollen wärend des gesamten Programmlaufs vorhanden sein.
Jetzt ist meine Frage, wo muss ich dann den Befehl ansetzen. In der Funktion die auch die malloc Funktion aufruft:
Ist so das Array in der Funktion die das Array erhält dann noch da?
Oder soll ich das Array erst zum Schluss des Programms wieder löschen? Oder muss ich nach jeder Übergabe wenn die Funktion abgeschlossen ist das Array löschen?
Ich versteh das nicht so richtig.
Vorallem, wenn ich eines meiner Arrays erst zu Programm ende wieder löschen will stürzt mein Programm ab.
wie ist das mit der free Funktion?
In meinem Programm sind alle Arrays über die malloc Funktion erstellt. Jetzt habe ich gelesen, ich soll danach, wieder den Befehl free benutzen.
Die Arrays sollen wärend des gesamten Programmlaufs vorhanden sein.
Jetzt ist meine Frage, wo muss ich dann den Befehl ansetzen. In der Funktion die auch die malloc Funktion aufruft:
Code:
char * getarray (int index)
{
char * p; //Pointer zur aufnahme des Arrays
p=(char*)malloc(index*sizeof(char)); //Das System wird nach Speicher gefragt
if (p==NULL) //Frage nach dem "NULL-Zeiger"
{
printf("Zu wenig Speicherplatz vorhanden");
}
return p; //Rückgabe des Pointers mit dem Array
free(p);
}
Ist so das Array in der Funktion die das Array erhält dann noch da?
Oder soll ich das Array erst zum Schluss des Programms wieder löschen? Oder muss ich nach jeder Übergabe wenn die Funktion abgeschlossen ist das Array löschen?
Ich versteh das nicht so richtig.
Vorallem, wenn ich eines meiner Arrays erst zu Programm ende wieder löschen will stürzt mein Programm ab.