Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

GET "memory corrupt" ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 07.07.2013, 10:43    Titel: GET "memory corrupt" ? Antworten mit Zitat

Hey lächeln

Ich arbeite gerade ein wenig an einer Funktion, die einzelne Bilder aus einem Tileset laden soll. Dummerweise klappt dies nur, wenn ich bloß ein Tile lade und anzeige. Das Programm startet zwar, zeigt aber keine Bilder an, sobald es mehr als 1 ist. Im Terminal erscheint folgender Fehler:
Terminal hat Folgendes geschrieben:
*** glibc detected *** ./test: malloc(): memory corruption: 0x0909f2c0 ***

So sieht der Code aus:
Code:
ScreenRes 1024,768,32

Type TTile
   As String nam
   As Integer id
   As Any Ptr texture
End Type
Dim Shared As TTile Tile(3)

Dim Shared As Any Ptr TexturePtr
TexturePtr=ImageCreate(256,256)
Bload "texture.bmp",TexturePtr

Declare Sub LoadTile(id As Integer,x As Integer,y As Integer)

'Später in einer Forschleife laden
LoadTile(1,0,0)
LoadTile(2,16,0)
LoadTile(3,32,0)

Do
   Sleep 1,1
   ScreenLock
      Cls
      Put (0,0),Tile(1).Texture,Trans
      Put (16,0),Tile(2).Texture,Trans
      Put (32,0),Tile(3).Texture,Trans
   ScreenUnLock
Loop Until Inkey=Chr(27)
End

Sub LoadTile(id As Integer,x As Integer,y As Integer)
   With Tile(id)
      .texture=ImageCreate(15,15)
      Get TexturePtr,(x,y)-(x+15,y+15),.texture
   End With
End Sub

Generell scheint die Grafikausgabe nicht zu funktionieren, sobald mehr als ein Tile geladen wurde. neutral
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 07.07.2013, 11:09    Titel: Antworten mit Zitat

probier mal obs bei +14 +14 auch auftritt?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 07.07.2013, 11:13    Titel: Antworten mit Zitat

bzw. mit IMAGECREATE(16, 16) statt ...(15,15). Der gelesene Bereich ist jedenfalls zu groß.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 07.07.2013, 11:13    Titel: Antworten mit Zitat

Wow, das tut es nicht. Wieso sind es immer die dummen Fehler, die ich mache? Darauf hätte ich auch kommen sollen. traurig

Aber danke zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 07.07.2013, 13:32    Titel: Antworten mit Zitat

Weil die alte QB-Syntax solche dummen Fehler geradezu proviziert. (Puffergröße ist bekannt, wozu also noch explizit angeben, wie viel man GETten will?)
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz