Frage zu Pointer Array in C

Mitglied: Tobi_

Tobi_ (Level 1)

21.06.2006, aktualisiert 22.06.2006, 8324 Aufrufe, 2 Kommentare

Hallo,
ich möchte ein dynamisches Pointer Array erstellen das der Benutzer durch eingaben füllen kann.
Mein Versuch endete aber immer mit dem Absturz des Programms, mein Compiler(Dev-C++ ) gibt dabei keine Fehlermeldung aus. Ich weiß durch herumprobieren inzwischen das es am strcpy hängt, aber ich finde keine Lösung wie man die Eingabe im Puffer ins Pointer Array(in Zeile i) kopiert!

MfG Tobi

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <ctype.h>
#define ZEILEN 128
#define SPALTEN 50


main()
{
char *PtrArray[ZEILEN];
char *puffer;
int i;
for (i=0;i<=50;i++)
{
gets(puffer);
strcpy(PtrArray[i], puffer);
}



return 0;
system("PAUSE");
}
2 Kommentare
Mitglied: DerKleineBruder
21.06.2006 um 21:34 Uhr
Hi Tobi,

mit der Zeile "char *PtrArray[]" legst du nur ein Array von 128 Pointern an,
die aber jeweils noch nicht initialisiert sind.

Du könntest nach dem gets() mit
PtrArray[i] = malloc(strlen(puffer)+1);
den Speicher für den eingegebenen String allocieren,
damit das strcpy nicht ins Nirvana geht.

Aber hinterher das Aufräumen nicht vergessen (wie früher das Kinderzimmer ;-) face-wink
Mitglied: Tobi_
22.06.2006 um 20:06 Uhr
Hallo,
Danke für deine Hilfe! Das man hier noch Speicher allocieren muss ist mir bisher noch nicht klar geworden...
Naja jetzt gehts auf jeden fall!

MfG Tobi