Etant donné que je debute en C (je travaille actuellement sur mon second programme dans ce langage), je ne suis pas très a l'aise avec les pointeur (j'ai lu plusieur cours a ce sujet mais rien n'y fait) et je n'arrive pas a supprimé ces warnings.
Quelqu'un saurait-il ou se trouve mon erreur ????
A voir également:
Warning: assignment to 'char' from 'char *' makes integer from pointer without a cast [-wint-conversion]
Assignment to ‘char’ from ‘char *’ makes integer from pointer without a cast - Meilleures réponses
Assignment to ‘char’ from ‘char *’ makes integer from pointer without a cast [-wint-conversion] - Meilleures réponses
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 oct. 2005 à 13:16
strncat(passwd,key,sizeof(key));
Fais gaffe au sizeof, sizeof(key) vaut 4 car tu reçois *key en param. La taille d'un pointeur es tde 4 octets sur system 32 bits.
Pour le reste faut te plonger dans un bouquin de C et bien assimiler pointeurs et tableaux.
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 oct. 2005 à 12:03
"*invkey" vaut "invkey[0]"
normal que le compilo te prévienne strncat retourne un POINTEUR char*, ça ne tiendra jamais sur 8 bits d'un char (non pointeur mais 1 seul octet).
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 oct. 2005 à 12:34
Tu supprimes le warning mais m'étonnerai que ça donne grand chose de cohérent.
strncat retourne pointeur sur destination, donc 'passwd' dans ton exemple. Que vaudrait d'aller mettre une adresse tronquée aux 8 bits bas dans un char ??? l'adresse ne sera pas retrouvable ultérieurement.
alussk
Messages postés15Date d'inscriptionlundi 17 octobre 2005StatutMembreDernière intervention18 mars 2006 31 oct. 2005 à 13:02
oulah, je me perds de plus en plus... reprenons
dans mon cas strncat renvoi un pointeur X sur passwd, qui, normalement, a pris la valeur passwd+key (si je me trompe pa sur l'utilité de strncat).
Moi je veux recuperer la valeur pointée par X et la mettre ds un char
avec tes explication je comprends pourquoi
*invkey=strncat(passwd,key,sizeof(key));
ne donne rien de bon mais franchement j'arrive pas a comprendre comment faire pour mettre la concatenation de passwd et de key dans invkey, je finis meme par me demander si c'est possible finalement...
PS: effectivement, les warnings ont disparu mais j'obtiens des resultat encore plus bizarre qu'avant a l'execution
alussk
Messages postés15Date d'inscriptionlundi 17 octobre 2005StatutMembreDernière intervention18 mars 2006 31 oct. 2005 à 13:08
j'ai oublié de precisé que dans mon main passwd a été déclaré comme suit : char passwd[12], je me demande docn, si je fais strncat(passwd,key,sizeof(key)); ou "part" la concatenation des deux chaines ???
(je sais, je pose beaucoup de questions, mais je peux pas m'en empecher )
alussk
Messages postés15Date d'inscriptionlundi 17 octobre 2005StatutMembreDernière intervention18 mars 2006 31 oct. 2005 à 13:21
Oki pour le bouquin, de toute façon plus j'avance plus je suis obligé de me servir de trucs que je ne connais pas ^^"
En tout cas merci pour strcpy, strncpy, j'ai compris le principe
reste a savoir si je pourrai l'appliquer mdr