zwei variablen, gleiche adresse
-
Hi Leute,
ich hab ein Problem mit meinem Arbeitsspeicher.
Hab folgende Variablen deklariert
int i,j,k,number; int field[9][9][9];
Wenn ich mir jetzt die Adressen der Variablen anschaue sehe ich folgendes:
Der Array des Arrays des Array belegt 0xbff6760c - 0xbff6816c
i,j,k haben: 0xbff6801c,0xbff68018,0xbff68014In diesem Sinne verschlingt mein Array die drei anderen Variablen. Wie kann sowas passieren?
-
Zeig mal genau was du gemacht hast, um das heraus zu finden.
-
#include <stdio.h> int main() { int i,j,k,number; int field[9][9][9]; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { for(k=1;k<=9;k++) { if(&i == &field[i][j][k] || &j ==&field[i][j][k] || &k == &field[i][j][k]) { printf("%d,%d,%d\n",i,j,k); printf("%p,%p,%p\n",&i,&j,&k); printf("%p\n",&field[i][j][k]); } } } } return 0; }
-
Du läufst über die Arraygrenzen, also von 1..9 statt 0..8.
-
Ein Array mit 9 Feldern hat die Indizes 0 bis 8. Deine Schleife läuft von 1 bis 9. Damit bist du am Ende außerhalb des Arrays und das kann natürlich der Speicherbereich der anderen Variablen sein.
-
*kopf gegen die wand
-
pather87 schrieb:
*kopf gegen die wand
Da kann die Wand nun echt nichts für. Du hast nicht mal wirklich ein Problem mit dem Arbeitsspeicher. Hoffe, Du lässt auch den in Frieden. :xmas2: