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:
Makes pointer from integer without a cast
Assignment makes pointer from integer without a cast - Meilleures réponses
Warning: assignment makes integer from pointer without a cast - Meilleures réponses
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.
"*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).
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.
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
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 )
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