SparkMonkay
Commander
- Registriert
- Feb. 2013
- Beiträge
- 2.337
Moinsen!
Ich habe eine Frage zu malloc in verbindung zu Arrays, ich fasse es mal kurz, da ich es anhand eines minimalen Beispiels verstehen möchte.
ich habe einen Pointer , auf den ich den Rückgabewert von malloc setzte, bzw den Anfang vom reservierten Speicherberich.
So z.B.
Ich habe mir auf meinem Whiteboard die Struktur des Arrays aufgezeichnet, jedoch ist mir das zu umständlich dieses Array 1-D zu behandeln und ich bin auf die glorreiche Idee gekommen dieses Array dann 2-D zu nutzen.
Nehmen wir mal an dass n*m=6 sind, dann hat mein Array wenn ich es 1-D benutze die Elemente auf den Plätzen von 0-5. 2-D hätte ich dann ein Array mit einer "Breite" von 3 und einer "Höhe" von 2.
Ich verstehe es dann so, bzw. von C-HOW-TO, dass ich dieses Array 2-Dimensional nutzen kann, das freute mich.
Jedoch ist das irgendwie nicht so wie gelaufen wie geplant, denn:
Das bringt folgenden Fehler:
und zeigt mir dann auf die zweite eckige Klammer.
Es wird unter Linux programmiert (x86), GCC ist aktuell.
Ich hoffe meine Frage, bzw. dass was ich gerne erklärt bekommen habe möchte ist auch verständlich.
Danke für hilfreiche Antworten!
Ich habe eine Frage zu malloc in verbindung zu Arrays, ich fasse es mal kurz, da ich es anhand eines minimalen Beispiels verstehen möchte.
ich habe einen Pointer , auf den ich den Rückgabewert von malloc setzte, bzw den Anfang vom reservierten Speicherberich.
So z.B.
Code:
long *arraypointer=NULL;
arraypointer=malloc(n*m*sizeof(long));
Ich habe mir auf meinem Whiteboard die Struktur des Arrays aufgezeichnet, jedoch ist mir das zu umständlich dieses Array 1-D zu behandeln und ich bin auf die glorreiche Idee gekommen dieses Array dann 2-D zu nutzen.
Nehmen wir mal an dass n*m=6 sind, dann hat mein Array wenn ich es 1-D benutze die Elemente auf den Plätzen von 0-5. 2-D hätte ich dann ein Array mit einer "Breite" von 3 und einer "Höhe" von 2.
Ich verstehe es dann so, bzw. von C-HOW-TO, dass ich dieses Array 2-Dimensional nutzen kann, das freute mich.
Jedoch ist das irgendwie nicht so wie gelaufen wie geplant, denn:
Code:
arraypointer[0][0]=irgendwas;
Das bringt folgenden Fehler:
error: subscripted value is neiter array nor pointer
und zeigt mir dann auf die zweite eckige Klammer.
Es wird unter Linux programmiert (x86), GCC ist aktuell.
Ich hoffe meine Frage, bzw. dass was ich gerne erklärt bekommen habe möchte ist auch verständlich.
Danke für hilfreiche Antworten!