J'essaie d'exécuter le code suivant en C:
Please enter the first number: 13 Please enter the second number: 4 0 4 -------------------------------- Process exited after 1.877 seconds with return value 4 Press any key to continue . . .
3 Réponses :
Un int16_t n'est pas la même chose que l'INT; Donc, passer un pointeur à un via scanf et prétendre que c'est un pointeur INT peut donner un comportement inattendu; Ainsi, votre question. p>
Remplacez INT16_T avec int et votre programme fonctionne. Pour le suivi, lisez la spécification de langage de programmation C des types et de ce qu'ils veulent dire. P>
Je réalise l'erreur là-bas. En fait, j'ai l'intention d'utiliser int16_t code> pour ce programme particulier. Merci de votre aide.
Essayez de changer de: Plus de références: https://docs.microsoft.com/en-us/cpp/c-Runtime-library/Format-Specification-Syntax-printf-and-wprintf-fonctions?views- 2019 p> scanf ("% hd" et secondnum); code> p>
% d code> est un spécificateur de données de 4 octets,
int16_t code> est en réalité seulement 2 octets. P>
% d code> in
scanf code> La famille correspond à un entier signé, qui ne doit pas nécessairement être de la largeur de 4 octets et l'argument correspondant doit être un pointeur pour signé entier. Le spécificateur approprié pour
int16_t code> est
"%" scnd16 code> dans
scanf code> famille.
"% hd" code> meilleur utilisé avec
signé court code>.
int16_t code> est souvent identique à celui de
bref signé code>, mais peut différer. Donc, quand il diffère (rare),
scanf ("% hd", & secondnum) code> est UB.
Le spécificateur approprié pour meilleur code vérifierait la valeur de retour. < / p> int16_t secondnum code> est de
N'était-il pas possible de copier et collez la sortie? Poster des images de texte n'est pas la chose la plus gentille que vous puissiez faire pour les personnes qui essaient de vous aider.
Je suis désolé, je pensais que copier et coller le code était la norme. Je vais le mener tout de suite.
Merci et désolé pour la langue dure. Vous avez deux réponses ci-dessous que les deux pointent sur le même problème.