tobi_
Goto Top

Frage zu Pointer Array in C

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");
}

Content-ID: 34634

Url: https://administrator.de/contentid/34634

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

DerKleineBruder
DerKleineBruder 21.06.2006 um 21:34:02 Uhr
Goto Top
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
Tobi_
Tobi_ 22.06.2006 um 20:06:44 Uhr
Goto Top
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