Deklariert aber nicht Definiert !?
Übersicht

![]() |
FOODyBetreff: Deklariert aber nicht Definiert !? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Ich hab mal ne Frage... Bei den älteren BM Version (<1.20) gabs bei sowas glaub ich einen Fehler: (Memory Access xxxxxxx oder sowas in der richtung von Fehler) Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null Print image.handle_x image wird hier Deklariert, aber nicht definiert. D.h. der speicher wurde noch nicht Reserviert?! Aber warum kommt kein Fehler??? Das wollte ich mal gerne wissen.. Vllt verstehe ich ja was falsch ^^" Gruß, FOODy EDIT: Bei sowas kommt ein Fehler: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null Print image.pixmaps[0].width |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann musst du ne andere Version von BM 1.22 haben als ich, denn im Debug Build kommt ein Fehler, wie erwartet. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso..
Ne ich hab hier auf 1.20 und zuhause 1.22. Aber ich meine jetzt nicht denn Debugfehler. (Also Debug-Build aus) Sondern den: "Unhandled Memory Exception Error" :/ Gruß, FOODy EDIT: Wenn ich das Compile und Ausführe ist das der Output: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null Print image.handle_x Ausgabe: Code: [AUSKLAPPEN] Building untitled1
Compiling:untitled1.bmx flat assembler version 1.64 3 passes, 559 bytes. Linking:untitled1.exe Executing:untitled1.exe 0.000000000 Process complete Und bei das: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null Print image.pixmaps[0].width Ausgabe: Code: [AUSKLAPPEN] Building untitled1
Compiling:untitled1.bmx flat assembler version 1.64 3 passes, 563 bytes. Linking:untitled1.exe Executing:untitled1.exe Unhandled Memory Exception Error Process complete Dabei müsste beim ersten auch ein "Unhandled Memory Exception Error" kommen... (meiner Meinung nach) Da die Instanz nicht existiert. (Hab sie ja nicht Definiert) |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also das beim zweiten ein Fehler kommt ist klar, da der Pixmap Array null ist.
Warum das beim ersten so arbeitet, ist mir aktuell leicht ein Rätsel. Es gab letzthin im englischen Forum schon einen Thread und jetzt schonwieder, bezüglich SizeOf das total schwachsinnige Daten zurück gibt und dem GCMemAlloced das zum Teil scheinbar darauf hinweist, das auch nicht initialisierte Referenzen schon auf vollständige Objekte verweisen. Das so etwas bei richtigen Pointern passieren kann ist klar, falls der Pointer nicht 0 ist. Da man dort auf Speicher zeigt wo irgend etwas drin stehen kann. Aber ich ging eigentlich davon aus, das BM doch ein wenig intelligenter ist. Aber dem scheint nicht so zu sein. Am besten ins englische Bug Board posten. Noch ein weiterer Fehler im Compiler der unter 1.22 gefunden wurde ... wenns so weiter geht mit Compilerfehlern sind wir demnächst bei Version 1.0 Try 2 ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach ein Compilerfehler..
Daran hab ich auch schon gedacht. Aber das melden kann ruhig ein anderer machen ![]() Irgendwie post ich da net so gerne ^_^" (muss erstmal schönes Englisch lernen >_>) Danke dir, Dreamora ![]() Gruß, FOODy EDIT: @Dreamora: Jo stimmt xD Aber ich denke mal, dass der Fehler bestimmt schon gemeldet wurde. ![]() |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
- Zuletzt bearbeitet von FOODy am Mi, Okt 18, 2006 9:55, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der Witz war gut. Bis anhin dürfen die US User da auch noch posten ... von daher darf da kein Anspruch an englisch gestellt werden ^^ | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde sagen die Struktur ist da aber hat kein Inhalt
und beim zweiten sprichst du den Inhalt an der nicht da ist . Finde daran nix komisch . |
||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich dürfte garnichts da sein...
Wenn man eine Variable Deklariert sagt man dem Compiler nur das es ab jetzt die Variable gibt. Es darf aber noch kein speicher reserviert werden. Zumindest nicht bei Typen wie TImage, TSound, etc. inkl. Selbstdefinierte Typen/Strukturen. Falls ich aber falsch liege, bitte aufklären ![]() Gruß, FOODy EDIT: Hier ein Beispiel: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null If image Print "Exists: 1" Else Print "Exists: 0" Print image.handle_x If image Print "Exists: 1" Else Print "Exists: 0" Ausgabe: Code: [AUSKLAPPEN] Building untitled1
Compiling:untitled1.bmx flat assembler version 1.64 3 passes, 849 bytes. Linking:untitled1.exe Executing:untitled1.exe Exists: 0 0.000000000 Exists: 0 Process complete |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein eigentlich liegst du richtig. Die Referenz zeigt auf null. Witzigerweise kommt noch nicht Mal dann ein Error wenn man explizit null zuweist. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man kann sogar ganz normal Werte zuweisen oO
Als ob es die Instanz gibt. Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null If image Print "Exists: 1" Else Print "Exists: 0" Print image.handle_x If image Print "Exists: 1" Else Print "Exists: 0" image.handle_x = 234 Print image.handle_x If image Print "Exists: 1" Else Print "Exists: 0" Ausgabe: Code: [AUSKLAPPEN] Building untitled1
Compiling:untitled1.bmx flat assembler version 1.64 3 passes, 1000 bytes. Linking:untitled1.exe Executing:untitled1.exe Exists: 0 0.000000000 Exists: 0 234.000000 Exists: 0 Process complete Ich denk mal das ist ein Bug... Hier ein bisschen erweitert: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Max2D Import BRL.StandardIO Local image:TImage' = Null If image Print "Exists: 1" Else Print "Exists: 0" Print image.handle_x If image Print "Exists: 1" Else Print "Exists: 0" image.handle_x = 234 Print image.handle_x If image Print "Exists: 1" Else Print "Exists: 0" 'image = New TImage Print Object(image).toString() Hier kommt ein Fehler. Weil die Instanz nicht existiert <_> (Wenn man die Zeile "'image = New TImage" "entkommentiert" geht es, weil die Instanz erstellt wird) Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group