falsche Werte im 2D array

thorghal

Grünschnabel
hi,

ich habe ein problem bei einem definierten 2D Array

ich definiere es normal mit double array[20][2]

danach lese ich eine datei aus und lasse die daten in das array reinschreiben, danach ordnet er aber immer array[0][2] dem wert von array[1][0] um umgedreht zu und so weiter, also dem array [1][2] gleich array[2][0]...

hat jemand schon mal das problem gehabt, ich zweifle schon leicht an mir, das kann doch eigentlich ned sein, dass der sowohl unter linux als auch unter win so n rotz macht

danke
 
Hi!

Wie wäre es wenn du mal deinen Code posten würdest.

Denn eigentlich kann es - wie du ja selbst gesagt hast - nicht sein.

Gruß
Johannes
 
moin


Und wie das sein kann!


Wenn du dein Array so definierst: double array[20][2];

Dann darfst du NIEMALS per array[20][2] darauf zugreifen!

Die höchsten Werte auf die du zugreifen darst sind array[19][1]

Wenn du ein Array mit 20 Stellen definierst greifest du mit 0 - 19 darauf zu! 20 liegt schon lange außerhalb des reservierten Speichers!


mfg
umbrasaxum
 
Zuletzt bearbeitet:
umbrasaxum hat recht.

Der Grund wieso array[0][2] gleich array[1][0] ist, ist dass der Compiler für die Variable einen Speicher von 2*20 Werten angelegt hat, der am Stück zusammen hängt und da er kein Range checkt macht kommt es zu diesem Effekt
 
Zurück