[ Argv ] assignment makes [..] without a cast
Sakiir
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Alors voila J'ai voulu fair mon petit programme à partir d'argument et de fonctions afin de programmer securisé ! ( Eviter les scanf ^^' )
Le lien de mon programme :
http://pastebin.com/1ptZJX0w
Et je me retrouve avec ces erreurs que je ne connais pas.. J'aimerai assigner Des variable à argv[1], argv[2] et argv[3] !
J'espere que vous comprenderez merci !! :D
Alors voila J'ai voulu fair mon petit programme à partir d'argument et de fonctions afin de programmer securisé ! ( Eviter les scanf ^^' )
Le lien de mon programme :
http://pastebin.com/1ptZJX0w
Et je me retrouve avec ces erreurs que je ne connais pas.. J'aimerai assigner Des variable à argv[1], argv[2] et argv[3] !
J'espere que vous comprenderez merci !! :D
2 réponses
-
Salut,
Argv[1]=a
Quelle horreur lol.
Ne voudrais-tu pas plutôt faire le contraire : mettre argv[1] dans a ?
De plus attention a est un int alors que argv[1] est un pointeur sur un char.
Il fait donc faire une conversion. Avec strtol par exemple.
N'oublie pas de verifier b diffèrent de 0 pour la division.
Cdlt
-
Google is your friend-
-
-
-
ALors, avant de te donner un exemple, il y a plusieurs points :
Dois-tu être en int, ou long te convient ? Car sinon il faudra convertir strtol en int.
Lorsque tu appelles ton programme (prgmme 50 3 +), il faut que les paramètres soient exclusivement des chiffres, ou 50ahah doit être considéré comme 50 ?
Sinon, après, tu auras plusieurs contrôles :
a+b peut dépasser la capacité maximale. De même que a-b, a*b. Il faut tester que b est différent de 0 pour faire a/b. -
-
-
argv est un tableau de char* tu ne peux donc pas lui assigner des valeurs de type int, de plus la taille de ce tableau est de argc, il est donc loin d'être certain que toutes les cases argv[1], argv[2] et argv[3] existent !
De manière générale, argv ne devrait être utilisé que pour la lecture, pas pour l'écriture.