char **c initialisieren
-
Hallo,
kann mir jemand verraten, wie ich ein CHAR **c initialisiere?
Und wie ich es mit gültigen Werten bestücke?Vielen Dank
-
char c; char *p = &c; char **pp = &p; **pp = '*'; putchar (c);
-
@Undertaker sehr witzig...
@t4b-1re-2 da ist nicht viel zu initialisieren. du hast ein einen zeiger, der auf einen zeiger zeigt aber beiden gehört jeweils kein speicher.
ich nehme mal an, du willst das ganze hinterher als string-array nutzen, dann müsstest du zuerst speicher für das array reservieren mittels malloc:
c = malloc(sizeof(CHAR)*anzahl_der_strings);danach kann du die einzelnen strings setzen, wieder erst speicher reservieren also malloc, strdup oder ähnliches benutzen oder halt mittels scanf einlesen:
bspw:
c[i]=strdup("hallo");
oder
scanf("%s",c[i]);
-
-
char* muahua[]= { "ene", "mene", "miste", "ich", "p*ss", "gleich", "in", "die", "kiste", ":-D", 0 }; while( muahua[i] ) puts( muahua[i++] );
-
ghorst schrieb:
ich nehme mal an, du willst das ganze hinterher als string-array nutzen, dann müsstest du zuerst speicher für das array reservieren mittels malloc:
c = malloc(sizeof(CHAR)*anzahl_der_strings);das stimmt leider nicht ganz:
mit der Zeilec = malloc(sizeof(CHAR)*anzahl_der_strings);
legst du Speicher für "anzahl_der_strings" viele Chars an. Sprich einen
String mit dieser Länge.Richtig wäre:
c = (char*) malloc (sizeof(char*)*anzahl_der_strings
Gruss mcr
-
mcr schrieb:
Richtig wäre:
c = (char*) malloc (sizeof(char*)*anzahl_der_strings
Gruss mcr
Richtig wäre:
c = malloc ( sizeof(char*) * anzahl_der_strings )
-
[quote="lasjasjfasjfaö"]
mcr schrieb:
Richtig wäre:
c = malloc ( sizeof(char*) * anzahl_der_strings )
stimmt da ist mir ein "*" verloren gegangen.
-
damit wollte ich zeigen, das casten nicht nötig ist
-
das weiß ich, darum habe ich auch dir und nicht mcr zugestimmt.
-
Hallo,
danke für eure Hilfe! Ich bin ein winziges stückchen weiter... bekomms aber trotzdem nich hin. egal was ich tue ich bekomm immer wieder einfach nur pointerexceptions...
-
ohne den quellcode zu sehen, kann dir da schwer geholfen werden
-
mein letztes Posting war Fehlalarm, ich hat noch n andren Fehler drinn...
mit dem entscheidenden Hinweis von enemenemuh geht es. Sein
muahua[] hab ich auf mein **Char c; zugewiesen und seit dem keine Probleme mehr. Also ganz konkret:char *m[]={"1","2","...","n",0}; char **c=m; while(c[i]) puts(c[i++]);
Danke für eure Hilfe!!!!
t4b-1re-2