lukasS
Erfahrenes Mitglied
Hallo,
ich möchte eine Funktion haben in der eine char-Liste mit Werten gefüllt wird. Die Liste soll dynamisch sein, also die Größe ist unbekannt. In meinem Testprojekt kann ich die Liste zwar füllen, aber so bald ich aus der Funktion raus bin, ist die wieder genau so wie vor dem Funktionsaufruf. Hier das Beispiel:
In der testFunc funktioniert alles, Daten werden auch richtig ausgegeben, nur leider komme ich irgendwo mit den Pointern durcheinander und somit ist ppsz_array in der main-Funktion leer.
Ich habe das ganze noch mit einer Struktur gemacht, die ppsz_array beinhaltet, damit läuft das einwandfrei. Möchte aber trotzdem wissen, wie ich das ohne Struktur lösen soll.
Wo ist hier der Fehler drin?
Danke im Voraus!
Gruß
Lukas
ich möchte eine Funktion haben in der eine char-Liste mit Werten gefüllt wird. Die Liste soll dynamisch sein, also die Größe ist unbekannt. In meinem Testprojekt kann ich die Liste zwar füllen, aber so bald ich aus der Funktion raus bin, ist die wieder genau so wie vor dem Funktionsaufruf. Hier das Beispiel:
Code:
void testFunc(char** ppsz_array)
{
ppsz_array = (char **) malloc (sizeof (char *));
for(int i = 0; i < 10; i++)
{
if(i > 0)
ppsz_array = (char **) realloc (ppsz_array, (i + 1) * sizeof (char *));
ppsz_array[i] = (char *) malloc (100 * sizeof(char));
//mit Werten füllen
char sz_buff[10];
itoa(i + 100, sz_buff, 10);
strcpy(ppsz_array[i], sz_buff);
}
for (int n = 0; n < 10; n++)
printf ("%s\n", ppsz_array[n]);
//alles ok
}
int main(int argc, char* argv[])
{
char* ppsz_array = NULL;
testFunc(&ppsz_array);
//ppsz_array ist NULL
for (int n = 0; n < 10; n++)
printf ("%s\n", ppsz_array[n]);
getch();
free (ppsz_array);
return 0;
}
In der testFunc funktioniert alles, Daten werden auch richtig ausgegeben, nur leider komme ich irgendwo mit den Pointern durcheinander und somit ist ppsz_array in der main-Funktion leer.
Ich habe das ganze noch mit einer Struktur gemacht, die ppsz_array beinhaltet, damit läuft das einwandfrei. Möchte aber trotzdem wissen, wie ich das ohne Struktur lösen soll.
Wo ist hier der Fehler drin?
Danke im Voraus!
Gruß
Lukas