Segmentation Fault wegen übergabe?
-
Hallo,
in meinem Programm benutze ich Allegro. Nun wollte ich nur mal so aus Spaß eine Art Konsole schreiben. Allerdings kommt beim initialisieren der Buchstaben schon ein Fehler:
"Eine Zugriffsverletztung( Segmentation Fault ) trat in ihrem Programm auf" [DevCpp]irgendwie schon komisch, und wieso der Fehler kommt versteh ich erst recht nicht
Hier einmal der Code(gekürzt):
/* Die Größe der Buchstaben in Pixel */ #define ZEICHEN_BREIT 10 #define ZEICHEN_HOCH 15 /* Die Informationen für einen Buchstaben . 1 = weis; 0 = schwarz */ short int letter_A[ZEICHEN_HOCH][ZEICHEN_BREIT] = { {0,0,0,0,1,1,0,0,0,0}, {0,0,0,0,1,1,0,0,0,0}, {0,0,0,1,0,0,1,0,0,0}, {0,0,0,1,0,0,1,0,0,0}, {0,0,0,1,0,0,1,0,0,0}, {0,0,1,0,0,0,0,1,0,0}, {0,0,1,0,0,0,0,1,0,0}, {0,0,1,1,1,1,1,1,0,0}, {0,1,0,0,0,0,0,0,1,0}, {0,1,0,0,0,0,0,0,1,0}, {1,1,1,0,0,0,0,1,1,1}, {0,0,0,0,0,0,0,0,0,0}, }; typedef struct _KONSOLE { BITMAP *letter_A; /* Eine Bitmap für den Buchstaban "A" */ /* Falls das erzeugen des Buchstabens erfolgreich sein sollte, werden die Buchstaben natürlich in einem Array gespeichert */ /* ... */ } KONSOLE; KONSOLE kon; /* Einen Buchstaben zeichnen */ BITMAP *draw_letter( short int infos[][ZEICHEN_BREIT] ) { short int x = 0; short int y = 0; BITMAP *buf = create_bitmap( ZEICHEN_BREIT, ZEICHEN_HOCH ); /* Eine Bitmap erzeugen */ clear_to_color( buf, makecol( 0, 0, 0 ) ); /* Die Bitmap schwarz einfärben */ for( y=0; y<ZEICHEN_HOCH; y++ ) { for( x=0; x<ZEICHEN_BREIT; x++ ) { /* Wenn in dem Info-Array eine 1 steht, wird ein weißes Pixel an diese Position gesetzt. */ if( infos[y][x] == 1 ) { putpixel( buf, x, y, makecol( 255, 255, 255 ) ); } } } /* Die Bitmap zurückgeben */ return buf; } /* Alle Buchstaben zeichnen */ void draw_letters( void ) { kon.letter_A = draw_letter( letter_A ); /* ... */ }
irgendwie beim Aufruf - denk ich - entsteht der Fehler.
Nur ich habe keine Ahnung warum. Könnt ihr mir helfen?Danke schon mal im voraus!
-
Ich nochmal,
... hat sich grad erledigt.
Die Übergabe funktioniert. Nur der Fehler trat später bei einer Ausgabe auf.