[GELÖST] 2d array mit unerwarteten werten

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Boris1993

Betreff: [GELÖST] 2d array mit unerwarteten werten

BeitragSa, Mai 12, 2012 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo liebe community
ich habe heute ein bisschen rumgecodet und ein 2D array gemacht
global map:byte[10, 10]
dann habe ich auf der map punkte bemerkt die nicht da sein sollten und alle arraywerte geprintet bevor ich irgendwelche werte zugewiesen habe und komischerweise waren den letzten arraywerte mit zahlen belegt die ich mir nicht erklären kann warum sie da sind und musste extra anfangs alle auf 0 setzen damit mein programm läuft
das waren die letzten werte aus dem array:
32
32
160
79
0
0
0
0
128
1
0
0
weiß jemand woran das liegen könnte?
  • Zuletzt bearbeitet von Boris1993 am So, Mai 27, 2012 9:11, insgesamt einmal bearbeitet

M0rgenstern

BeitragSa, Mai 12, 2012 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Also...
Meine Kristallkugel sagt mir, dass du einen Fehler in deinem Code hast.

Ernsthaft. Ohne Code können wir dir nicht helfen.
 

Boris1993

BeitragSa, Mai 12, 2012 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab meinen code um es zu testen auf das reduziert und dabei enthalte ich immer diese seltsamen werte solange ich nicht manuell alle auf 0 setze
Code: [AUSKLAPPEN]
SuperStrict

Global map:Byte[10, 10]
For Local x:Int =  0 To 10
   For Local y:Int = 0 To 10
      'map[x, y] = 0
      Print map[x, y]
   Next
Next

M0rgenstern

BeitragSa, Mai 12, 2012 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja. Und weiter?
Man sollte ein Array auch immer auf Startwerte setzen, nachdem man es deklariert hat.
Ansonsten kann es passieren, dass es mit irgendwelchem Müll aus dem Speicher vollgeschrieben wird.
Also ich sehe ehrlich gesagt dein Problem nicht. Dann initialisiere dein Array einfach mit 0.

Lg, M0rgenstern
 

Boris1993

BeitragSa, Mai 12, 2012 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ok das wusst ich nich ich hab mich nur gewundert wo die werte herkommen jetzt weiß ichs Very Happy

wie deklariere ich ein array mit 0 ohne extra in einer forschleife jeden wert = 0 setzen zu müssen?
also eigentlich habe ich immer gedacht das bei einem array wie auch bei anderen variablen der wert immer standardmäßig 0 ist

Noobody

BeitragSa, Mai 12, 2012 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, Arrays werden immer auf 0 initialisiert. Dein Problem ist, dass du über Arraygrenzen hinausliest. Bei einem Array mit 10x10 Einträgen darfst du nur Indizes von 0-9 verwenden, in deinem Beispiel aber liest du von 0-10.

Wenn du den Debugmodus einschaltest, siehst du das aber auch sofort Wink
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Boris1993

BeitragSa, Mai 12, 2012 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ach daran lag es is mir gar nicht aufgefallen sowas vergesse ich immer Smile
danke für die schnelle hilfe ist ja schon fast wie chatten hier Very Happy
  • Zuletzt bearbeitet von Boris1993 am Sa, Mai 12, 2012 19:00, insgesamt einmal bearbeitet

M0rgenstern

BeitragSa, Mai 12, 2012 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
@Noobody.
Das hab ich ja grade erst gesehen oO.
Aber dann müsste er doch sowieso nen Fehler werfen? Kenn ich eigentlich nur so.

Sorry, dass das Array bei Blitz standardmäßig mit 0 ist hab ich total vergessen.
War bei C.

Lg, M0rgenstern

Noobody

BeitragSa, Mai 12, 2012 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax prüft solche Sachen nur im Debugmodus. Im Release werden solche Checks rausgekickt, um das Programm schneller zu machen.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group