Initialiser une variable au départ d'une fonction
Bonjour qu'arrive t'il à ma variable déclarée dans ma fonction lorsque je fait ceci S = ChargerImages(); ? Cette fonction retourne un pointeur qui défini ma nouvelle variable S mais du coup, es que j'ai bien 2 variables qui pointent sur une seule texture en mémoire ? Es que j'ai tord de libérer qu'une seule texture à la fin de mon programme ? (le principe est plus ou moins le même avec Glut sauf que j'utilise GlDeleteTexture(1,...) ).
fonction 1:
Code:
1 2 3 4 5 6 7 8 9 10 11
| Sprites* ChargerImages()
{
Sprites* S;
int i;
S = malloc(NbSprites*sizeof(Sprites));
S[0].sprite = IMG_Load("images/sky.png");
..
return S;
} |
fonction 2:
Code:
1 2 3 4 5 6
| void LibererMap(Map* m, Sprites* S)
{
SDL_FreeSurface(S[0].sprite);
..
free(S);
} |
Code:
1 2 3 4 5 6
| void game()
{
Sprites* S;
S = ChargerImages();
LibererMap(m,S);
} |