Bonjour,
J'ai une fonction qui attend un pointeur sur un int est-ce possible de faire un truc du genre &3 sans initilization ou déclaration car sa m'embete un peu de declarer une nouvelle variable pour juste ça ...
merci
Version imprimable
Bonjour,
J'ai une fonction qui attend un pointeur sur un int est-ce possible de faire un truc du genre &3 sans initilization ou déclaration car sa m'embete un peu de declarer une nouvelle variable pour juste ça ...
merci
Salut,
non, c'est impossible: 3 est ce que l'on appelle une rvalue (une valeur qui ne peut se trouver qu'à droite de l'opérateur d'affectation), et, pour être précis, c'est ce que l'on appelle aussi un "littéral" (quelque chose qui représente une valeur bien précise), alors qu'il faut un pointeur sur ce que l'on appelle une lvalue (une valeur qui peut se trouver à gauche de l'opérateur d'affectation).
De plus, si ta fonction s'attend à recevoir un int * en paramètre, tu dois te dire que c'est sans doute pour pouvoir y écrire une information qui risque de t'intéresser. Cette information mérite bien d'avoir une variable qui la représente, tu ne crois pas :question:
Enfin, si tu n'es vraiment pas intéressé par cette information (mais si le développeur a estimé que tu devais pouvoir en profiter, tu prendrais un sérieux risque en adoptant ce point de vue) et que la fonction est correctement codée, tu peux malgré tout transmettre nullptr qui correspond à une adresse invalide, et que la fonction devrait pouvoir prendre en compte.
Maintenant, nous pourrions sans doute bien plus facilement t'aider si nous savions de quelle fonction il s'agit ainsi que le nom du paramètre en question, car cela nous permettrait de déterminer plus facilement si -- oui ou non -- tu peux effectivement ignorer l'information sans danger ;)