Programmabsturz bei Variablenzuordnung

Liebe Leute

Hier ein Auszug aus meinem Programm mit SDL:

fenster=SDL\_SetVideoMode(prgw,(prgh+25),32,SDL\_HWSURFACE);

 SDL\_Rect \*rFlaeche;
 rFlaeche-\>x=0;
 rFlaeche-\>y=0;
 rFlaeche-\>w=prgw;
 rFlaeche-\>h=prgh;

 SDL\_FillRect(fenster,rFlaeche,SDL\_MapRGB(fenster-\>format,200,200,200));
 SDL\_WM\_SetCaption(prgname.get(), NULL);
 SDL\_WM\_SetIcon(SDL\_LoadBMP("bilder/icon.bmp"), NULL);

 SDL\_Flip(fenster);

Bei

SDL\_Rect \*rFlaeche;
 rFlaeche-\>x=0;
 rFlaeche-\>y=0;
 rFlaeche-\>w=prgw;
 rFlaeche-\>h=prgh;

stürzt das Programm ab, keine Ahnung, wieso…
So sieht die Variablenstruktur von SDL_Rect aus:
http://sdl.beuc.net/sdl.wiki/SDL_Rect

Kann mir jemand sagen, was ich falsch gemacht habe? SDL_FillRect verlangt, dass rFlaeche ein Pointer sein muss.

LG
Kalsan

Hi Kalsan,

SDL_Rect *rFlaeche;
rFlaeche->x=0;
rFlaeche->y=0;
rFlaeche->w=prgw;
rFlaeche->h=prgh;

für rFlaeche ist kein Speicherplatz mit new oder malloc
angefordert worden.

Gruss
norsemanna

Nachtrag
Hi Kalsan,

>Kann mir jemand sagen, was ich falsch gemacht habe? SDL_FillRect
>verlangt, dass rFlaeche ein Pointer sein muss.

dafür könntest du dann ggf. auch ein
SDL_Rect rFlaeche
vereinbaren und dann diesen später per &rFlaeche
an die weiteren Funktionen übergeben.

Gruss
norsemanna

Hallo Kalsan,

Bei

SDL\_Rect \*rFlaeche;

//Hier reservierst du Speicherplatz für den ZEIGER.
//Der Zeiger zeigt jetzt aber IRGENDWO in den Speicher

 rFlaeche-\>x=0;

Hier schreibst du IRGENDWO eine 0 in den Speicher.
Je nachdem wo IRGENDWO ist, gibt es dann unterschiedliche Abstürze.

 rFlaeche-\>y=0;
 rFlaeche-\>w=prgw;
 rFlaeche-\>h=prgh;

stürzt das Programm ab, keine Ahnung, wieso…

Kann mir jemand sagen, was ich falsch gemacht habe?
SDL_FillRect verlangt, dass rFlaeche ein Pointer sein muss.

 SDL\_Rect rFlaeche;
 rFlaeche.x=0;
 rFlaeche.y=0;
 rFlaeche.w=prgw;
 rFlaeche.h=prgh;


SDL\_FillRect(fenster, &rFlaeche,SDL\_MapRGB(fenster-\>format,200,200,200));

MfG Peter(TOO)

gelöst
Bingo!

Danke

*4u