Bonjour !

J'ai Une petite question que je me pose régulièrement :
lorsque une fonction attend un pointeur, je peut lui passer l'adresse d'une variable... mais est il possible de le faire en imbriquant les appelles, lorsque ladite fonction imbriqué ne renvoie pas un pointeur.

Un exemple pour expliquer cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
foo(bar* p_bar);
bar ret_bar();
 
int main() {
  foo(ret_bar());      //Erreur : attend une adresse et passe une variable
  foo(&ret_bar());    //Erreur : passe l'adresse de la fonction
  foo(&(ret_bar()));  //Erreur :  & n'est pas une l-value
 
  //obligé de passer par une variable ? 
  bar my_bar = ret_bar();
  foo(&my_bar);
 
  return 0;
}
Il est toujours possible de passer par une variable intermédiaire (c'est même plus claire) mais je me demande quelle syntaxe permet le passage directe (anonyme je crois qu'on appelle ça) si c'est techniquement possible. merci.