Hallo!
ich hab eine kleines Problem mit einem 4x4 Array! Ich wollte eine Matrix mit der Eigenschaft Koordinaten erstellen, wo in jedes Feld eine Temperatur eingetragen wird, also jedes Feld hat die Eigenschaft Temperatur. Nun gibt der Compiler drei falsche Werte aus.
Headerdatei mit dem Namen „gh.h“
#ifndef GH_H_
#define GH_H_
struct foo {
struct {
int temp;
} coord[3][3];
} field;
#endif /* GH_H_ */
main.c
#include
#include „gh.h“
int main() {
field.coord[0][0].temp = 1;
field.coord[1][0].temp = 2;
field.coord[2][0].temp = 3;
field.coord[3][0].temp = 4;
field.coord[0][1].temp = 5;
field.coord[1][1].temp = 6;
field.coord[2][1].temp = 7;
field.coord[3][1].temp = 8;
field.coord[0][2].temp = 9;
field.coord[1][2].temp = 10;
field.coord[2][2].temp = 11;
field.coord[3][2].temp = 12;
field.coord[0][3].temp = 13;
field.coord[1][3].temp = 14;
field.coord[2][3].temp = 15;
field.coord[3][3].temp = 16;
printf("%d %d %d %d\n", field.coord[0][0].temp, field.coord[0][1].temp, field.coord[0][2].temp, field.coord[0][3].temp);
printf("%d %d %d %d\n", field.coord[1][0].temp, field.coord[1][1].temp, field.coord[1][2].temp, field.coord[1][3].temp);
printf("%d %d %d %d\n", field.coord[2][0].temp, field.coord[2][1].temp, field.coord[2][2].temp, field.coord[2][3].temp);
printf("%d %d %d %d\n", field.coord[3][0].temp, field.coord[3][1].temp, field.coord[2][2].temp, field.coord[3][3].temp);
return 0;
}
Der Compiler gibt folgendes aus:
1 5 9 13
13 6 10 14
14 7 11 15
15 8 11 16
Die drei unteren Werte in der ersten Spalte sind falsch!
Was habe ich falsch gemacht?
Gruß Alex