Mehrdimensionale Arrays

Hallo,

ich steige immer noch nicht durch dem mehrdimensionalen Arraysystem durch:

Hier habe ich mir selbst ein Beispiel gebastelt, um es nachvollziehen zu können. Habs erst mal nur im 2 Dimensionalen Raum gelassen,weil bei 3-fach,da kapier ich es erst recht nicht:

int test [5][5] = {11,66,3,4,5,6,7,8,9,6,5,4,3};

cout

Hallo Keozor !

Dein Problem ist schlicht und einfach dass du nicht bedacht hast dass Arrays in C mit dem Index ‚0‘ beginnen:

int test [5][5] = {11,66,3,4,5,6,7,8,9,6,5,4,3};

Daraus wird:
test[0][0] ist 11
test[0][1] ist 66
test[0][2] ist 3
test[0][3] ist 4
test[0][4] ist 5
test[1][0] ist 6
test[1][1] ist 7
test[1][2] ist 8
test[1][3] ist 9
test[1][4] ist 6
test[2][0] ist 5
test[2][1] ist 4
test[2][2] ist 3
test[2][3] ist uninitialisiert, also zufälliger Wert
test[2][4] ist uninitialisiert, also zufälliger Wert
test[3][0] ist uninitialisiert, also zufälliger Wert

test[4][4] ist uninitialisiert, also zufälliger Wert

mfg
Christof

Hallo Keozor !

Dein Problem ist schlicht und einfach dass du nicht bedacht
hast dass Arrays in C mit dem Index ‚0‘ beginnen:

Doch eigentlich schon,bloß ich hab nicht überall Werte eingegeben…

int test [5][5] = {11,66,3,4,5,6,7,8,9,6,5,4,3};

Daraus wird:
test[0][0] ist 11
test[0][1] ist 66
test[0][2] ist 3
test[0][3] ist 4
test[0][4] ist 5
test[1][0] ist 6
test[1][1] ist 7
test[1][2] ist 8
test[1][3] ist 9
test[1][4] ist 6
test[2][0] ist 5
test[2][1] ist 4
test[2][2] ist 3
test[2][3] ist uninitialisiert, also zufälliger Wert
test[2][4] ist uninitialisiert, also zufälliger Wert
test[3][0] ist uninitialisiert, also zufälliger Wert

Genau das wollte ich wissen!Danke

Aber wie verhält sich das im 3 dimensionalen Raum?

[0][0][0]
[0][0][1]
[0][0][2]
[0][0][3]
[0][0][4]
[0][0][5]
[0][1][0]
[0][2][0]
[0][3][0]

So?

test[4][4] ist uninitialisiert, also zufälliger Wert

Müsste da denn nicht 0 gesetzt werden,weil er das automatisch macht,wenn man ihm keinen Wert zuweist?

Hallo Fragewurm,

Aber wie verhält sich das im 3 dimensionalen Raum?

test[2][3][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

test[0][0][0] ist 1
test[0][0][1] ist 2
test[0][0][2] ist 3
test[0][0][3] ist 4
test[0][1][0] ist 5
test[0][1][1] ist 6
test[0][1][2] ist 7
test[0][1][3] ist 8
test[0][2][0] ist 9
test[0][2][1] ist 10
test[0][2][2] ist 11
test[0][2][3] ist 12
test[1][0][0] ist 13
test[1][0][1] ist 14
test[1][0][2] ist 15
test[1][0][3] ist 16
test[1][1][0] ist 17
test[1][1][1] ist 18
test[1][1][2] ist 19
test[1][1][3] ist 20
test[1][2][0] ist 21
test[1][2][1] ist 22
test[1][2][2] ist 23
test[1][2][3] ist 24

test[4][4] ist uninitialisiert, also zufälliger Wert

Müsste da denn nicht 0 gesetzt werden,weil er das automatisch
macht,wenn man ihm keinen Wert zuweist?

Das hängt im wesentlichen vom Compiler ab.

Im C-Standard ist nicht vorgeschrieben, welchen Wert uninitialisierte Daten haben müssen.

MfG Peter(TOO)

1 Like