Hi
Ich stehe vor einem sehr seltsamen Problem.
Ich bin gerade dabei, mit Allegro und C++ ein kleines Programm zum Darstellen einer einfachen tilebasierten Map zu erstellen, allerdings liegt das Problem vermutlich nicht bei Allegro.
Wenn ich den folgenden Code ausführe, erhalte ich einen Segmentation fault:
Der Segfault ereignet sich am ende des geposteten Codes, nach dem cout<<"3fertig\n";
In der Konsole sieht das ganze so aus:
Der Quellcode geht nach der Segfault-Stelle noch weiter, aber das habe ich der Übersichtlichkeit wegen weg gelassen, da es wahrscheinlich mit dem Segfault nichts zu tun hat.
Hat jemand eine Idee, woran das liegen könnte?
lg
Dece
Ich stehe vor einem sehr seltsamen Problem.
Ich bin gerade dabei, mit Allegro und C++ ein kleines Programm zum Darstellen einer einfachen tilebasierten Map zu erstellen, allerdings liegt das Problem vermutlich nicht bei Allegro.
Wenn ich den folgenden Code ausführe, erhalte ich einen Segmentation fault:
C++:
#include <iostream>
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
using namespace std;
class Maptile
{
public:
ALLEGRO_BITMAP * tile;
ALLEGRO_BITMAP * hWall;
ALLEGRO_BITMAP * vWall;
Maptile();
};
const int SCREEN_W = 640;
const int SCREEN_H = 480;
const int FPS=60;
const bool DEBUG = true;
bool key[10];
enum myKeys
{
UP,
DOWN,
LEFT,
RIGHT,
V,
ESC,
SPACE,
K1,
K2,
K3
};
int main( void )
{
for(int i = 0; i<10; i++)
key[i]=false;
al_init();
al_init_image_addon();
ALLEGRO_DISPLAY * display = al_create_display(SCREEN_W, SCREEN_H);
ALLEGRO_TIMER * timer = al_create_timer(1.0/FPS);
ALLEGRO_EVENT_QUEUE * events = al_create_event_queue();
al_set_target_bitmap(al_get_backbuffer(display));
ALLEGRO_BITMAP * tiles[3];
tiles[0]=al_load_bitmap("img/floor.png");
cout <<"1fertig\n";
tiles[1]=al_load_bitmap("img/hWall.png");
cout <<"2fertig\n";
tiles[2]=al_load_bitmap("img/vWall.png");
cout <<"3fertig\n";
// hier liefert er mir den Segfault
cout << "wat\n";
}
Maptile::Maptile()
{
this->tile = NULL;
this->vWall = NULL;
this->hWall = NULL;
}
Der Segfault ereignet sich am ende des geposteten Codes, nach dem cout<<"3fertig\n";
In der Konsole sieht das ganze so aus:
[feider@stonehenge maptest]$ ./map
1fertig
2fertig
3fertig
Segmentation fault
Der Quellcode geht nach der Segfault-Stelle noch weiter, aber das habe ich der Übersichtlichkeit wegen weg gelassen, da es wahrscheinlich mit dem Segfault nichts zu tun hat.
Hat jemand eine Idee, woran das liegen könnte?
lg
Dece