zeidimensionales array in C

problem

Member
Hi!
Hab hier ein kleines zweidimensionales array erstellt:
Code:
      1 #include <stdio.h>
      2 #include <stdlib.h>
      3
      4 int main() {
      5
      6 int array[1][1];
      7
      8 array[0][1] = 1;
      9 array[1][0] = 2;
     10 printf("%d %d \n", array[0][1], array[1][0]);
     11 }
Wenn ich das jetzt kompiliere und ausführe krieg ich das hier als Ausgabe:
Code:
2 2
Das würde ja bedeuten, dass die Felder [0][1] und [1][0] diesselben sind. Wie kommt das?

Ich hab immer gedacht, dass man in einem solchen array vier speicherplätze hat:
[0][0]
[0][1]
[1][0]
[1][1]

Warum ist das auf einmal nicht so?

Gruß
Sebbi
 

TeXpert

Guru
schau noch mal in Dein C-Buch,

das
Code:
      6 int array[1][1];

ist für Dein Ziel flashc -> kein 2x2 Matrix
 

abgdf

Guru
Das geht schon so, aber Dein Array hat ja 2 X 2 Stellen (2 X Stelle 0 und 2 X Stelle 1).
Es muß daher mit

Code:
int array[2][2];

deklariert werden. Dann geht's.
("int a[1];" beginnt ja mit a[0], und es gibt dann kein a[1]).

Gruß
 
Oben