Zugriffsverletzung mit SDL
-
Hi!
ich habe ein Problem mit der SDL:
Ich habe ein globales SDL_Surface das ich in meiner main mit SDL_SetVideoMode erstelle. Das geht auch ganz gut.
Dann habe ich 100 Instanzen einer Klasse(gepseichert in einem std::vector).In der draw Funktion dieser Klasse bekomme ich beim Aufruf von SDL_BlitSurface einer Speicherzugriffsverletzung(Windows)
Der Code sieht so aus:
.... .... // now draw the surface to the screen SDL_Rect rect; rect.x = x; rect.y = y; rect.w = g_screen->w; rect.h = g_screen->h; if( g_screen == NULL) { cout << "Video Mode not set" << endl; return; } // hier bekomme ich die Zugrissverletzung SDL_BlitSurface(m_bloc,NULL,g_screen,&rect); ... ...
Der Debugger bringt nichts aufregendes.
-
naja
hat sich jetzt erledigtirgendwie hatte ich da überall viel zu viel gepfuscht oder so
ich hab halt jetzt alles nochmal neu gemacht, ohne globales Surface(also das Surface nur in main) und jetzt funktionierts
-
Trotzdem ist da ein Fehler!
WEnn dann musst du jawohl vor dem Zugriff auf g_screen prüfen ob dieser Null ist sonst bekommste in den Zeilenrect.w = g_screen->w; rect.h = g_screen->h;
die schon vorher stehen Ärger.