Besoin d'une explication sur les pointeurs
Bonjour,
j'ai un cas avec les pointeurs que je ne comprends pas et je souhaiterai que l'on m'éclaire.
Voilà le petit morceau de code qui me pose problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
UneStructure *unestruct = NULL ;
...
void Allouer(UneStructure *S)
{
S = malloc(10 * sizeof(UneStructure)) ;
assert(S != NULL) ;
}
...
void main(void)
{
Allouer(unestruct) ;
if ( unestruct == NULL ) printf("Soucis :(\n") ;
} |
Donc voilà pour l'exemple. Le problème est bien évidemment que le programme marque "Soucis". En bref je souhaite allouer un tableau de structure via une fonction à laquelle je passe le pointeur concerné en paramètre.
Est ce que quelqu'un peut m'expliquer pourquoi l'allocation se fait bien dans la fonction (le assert passe) et que de retour dans le main, le pointeur est toujours NULL ?
Merci par avance...