Bonjour,

Lors d'un entretien, j'ai eu un test en langage C et je n'ai pas su répondre aux questions suivantes :

1) Comment est stockée une variable déclarée static dans la mémoire ?
=> je sais juste que static sert à garder une variable en mémoire de manière permanante, cad que même en dehors du bloc de déclaration de la variable, celle-ci n'est pas détruite. Ce qui se passe au niveau plus bas, dans les détails ( mémoire, stack ... etc) je ne sais pas ce qui se passe.

2) Que fait cette instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void (*ptr)(int* (*)(int* tab[]), int**);
=> je sais que ptr est un pointeur sur une fonction qui renvoie un type void, En revanche le premier argument c'est du chinois pour moi ... plus précisément l'étoile que j'ai mis en rouge

=> Je sais aussi que y a un call back mais c'est un peu flou pour moi car le nom de la fonction n'apparait pas ( dans le premier argument de la fonction pointée par ptr ).
Dans quel genre de situation on utilise ce genre d'expression ?

3)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
void *ptr;
int d  = sizeof(ptr);
d vaut combien ? ( et pourquoi ?)

Merci d'avance pour votre aide.