Das war doch einfach als gedacht, danke sehr
.
Ich habe noch 2 weitere kleine Fragen undzwar folgende:
Wann wird ein Zeiger selbst gelöscht ? Ich nehme an, dass dieser Zeiger selbst ebenfalls Speicher verbraucht ? Wenn ich nun folgendes hätte:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
SDL_Surface* loadSurface(std::string path)
{
SDL_Surface* surface = NULL;
surface = SDL_LoadBMP(path.c_str());
if (surface == NULL)
std::cout << "SDL konnte die BMP Datei nicht in den surface pointer laden. SDL_Error:\n" << SDL_GetError() << std::endl;
return surface;
}
|
Würde der Zeiger surface, welcher in der loadSurface funktion erstellt wurde zerstört, oder nicht ? (Ein Memory leak sollte ja nicht stattfinden, da ich die Adresse des Inhaltes ja in einem anderen Zeiger speichere).
Und falls dies der Fall ist, warum wird dann mein Zeiger, wenn ich ihn mit:
|
C-/C++-Quelltext
|
1
|
void funktion (SDL_Surface*& surface)
|
weiter reiche nicht zerstört ? Ich glaube ich habe einen ganz doofen Denkfehler, was das freigeben von Speicher nach dem Beenden der Funktion angeht.
Meine letzte Frage ist eher SDL spezifisch. Wie genau wissen die SDL_Events, was gerade passiert ? Wie werden sie durchgehend auf dem Laufenden gehalten ? Wie kann es sein, dass
|
C-/C++-Quelltext
|
1
|
while( SDL_PollEvent( &e ) != 0 )
|
Nicht durchgehend > 0 ist, wenn es doch bei jeder Abfrage ein Event erhält.
Auch auf die Gefahr hin mich hier total lächerlich zu machen hoffe ich, dass die Fragen nicht ganz bescheuert sind
.
Danke vielmals für eure hilfe (Ich hatte eine recht lange Pause vom Programmieren und habe scheinbar doch so einiges wieder vergessen
).
Lg