Antwort von
nach 13 Stunden
hilfreich
Re: noch ne c++ frage
char* einstring[82]
Anleitung zum Lesen von C/C++ Deklarationen (Ausschnitt):
1. Suche den Identifier, lies ihn: "einstring"
2. Gucke nach rechts, ob da eine eckige Klammer ist, wenn ja lies "ein Array von" und die Zahl in den Klammern "82"
3. Wieder hole 2. bis keine eckigen Klammern mehr da sind. (im Beispiel sofort der Fall)
4. Gucke nach links, ob da ein Stern ist, wenn ja lies "Pointer auf"
5. Wiederhole 5. solange bis keine Sterne mehr da sind (im Beispiel sofort der Fall)
6. Gucke nach links, ob da ein Typ steht, lies ihn: "char".
Also:
'einstring' ist ein Array von 82 Pointer(n) auf 'char'.
Überrascht?
deklariert, kann man ihm
dann sofort daten zuweisen, oder muss man
ihm erst platz im speicher reservieren?
Das Array der Pointer ist da, du wolltest aber sicher:
char einstring[82];
Oder wie bei dir, dann aber noch Speicher für die Strings allokieren:
for ( int n = 0; n < 82; n++ )
einstring[n] = new char[ ... ];
wenn man dann die funktion
getc(einstring)benutzt, wird doch
automatisch speicher reserviert, oder?
Was soll das für eine Funktion sein? Ich kenne nur getc() ohne Parameter. Und die braucht keinen Speicher, ausser den char im Returnwert, der auf dem Stack transportiert wird.
wenn ja, wird 82 Byte reserviert oder nur
soviel, wieviel der eingegebene string
wirklich benoetigt?
Von den 82 Byte wird die Funktion auf keinen Fall etwas wissen.
Viel Erfolg wünscht
Michael