Speicherzugriffsfehler (Speicherabzug geschrieben)
-
Hallo, ich programmiere unter Ubuntu 12.10, und compiliere meine projekte mit dem g++ compiler und wenn ich diesen code ausführe:
GLuint loadtexture( const string fileName ){ SDL_Surface *image = IMG_Load( fileName.c_str() ); SDL_DisplayFormatAlpha(image); unsigned object(0); glGenTextures(1, &object); glBindTexture(GL_TEXTURE_2D, object); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image->w, image->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels); //Free surface SDL_FreeSurface(image); return object; }
kommt der fehler: Speicherzugriffsfehler (Speicherabzug geschrieben).
Ich habe das Gefühl das liegt an dem SDL_Surface pointer, aber ihr kennt euch mit sowas bestimmt besser aus. Sage schonmal vorab danke
-
XXXXXXX schrieb:
Hallo, ich programmiere unter Ubuntu 12.10, und compiliere meine projekte mit dem g++ compiler und wenn ich diesen code ausführe:
GLuint loadtexture( const string fileName ){ SDL_Surface *image = IMG_Load( fileName.c_str() ); SDL_DisplayFormatAlpha(image); unsigned object(0); glGenTextures(1, &object); glBindTexture(GL_TEXTURE_2D, object); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image->w, image->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels); //Free surface SDL_FreeSurface(image); return object; }
kommt der fehler: Speicherzugriffsfehler (Speicherabzug geschrieben).
Ich habe das Gefühl das liegt an dem SDL_Surface pointer, aber ihr kennt euch mit sowas bestimmt besser aus. Sage schonmal vorab danke
Sorry, habe vergessen zu erwähnen dass ich das fehlerfrei compiliere, nur beim ausführen des programms kommt der fehler.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
-
nwp3 schrieb:
http://www.libsdl.org/projects/docs/SDL_image/SDL_image_7.html
Hat mir jetzt nicht wirklich weiter geholfen... Ich meine, das selbe tue ich ja in meinem code auch.. nur wenn ich dann die variable irgendwo verwende kommt dieser fehler.
-
Hast du das hier nicht gesehen ??????????
// load sample.png into image SDL_Surface *image; image=IMG_Load("sample.png"); if(!image) { printf("IMG_Load: %s\n", IMG_GetError()); // handle error }
Fehlerbehandlung ?? sonst zugriff auf NULL-Pointer -> zugriffsfehler