mailliam
Messages postés261Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention10 mars 2014
-
9 févr. 2008 à 16:07
mailliam
Messages postés261Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention10 mars 2014
-
9 févr. 2008 à 21:56
Coucou tous!
Je débute dans le C et j'ai deja un problème tout con!
je n'arrive pas à mettre une chaîne de caractère dans une variable..
au début je la déclarait avec int et j'ai vu sur le site que pour y mettre des caractères il faut utiliser char, mais comment?
char maVariable[25]="Hello c'est moi..";
printf("la variable contient: %ld ", maVariable);
ca me donne des chiffres!
pareil si je mets:
char maVariable="Hello c'est moi.."; ca me donne aussi des chiffres..
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 9 févr. 2008 à 16:20
Salut
char maVariable="Hello c'est moi.."; est totalement incorrect: ici tu n'a la place que pour 1 unique caractère.
char maVariable[25]="Hello c'est moi.."; est correct, tu peux mettre jusqu'à 24 caractères puisque le 25 ème caractère servira de marqueur de fin de chaine.
Ton probleme vient du printf: tu veux afficher une chaine de caractère donc c'est un %s qu'il faut mettre.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 9 févr. 2008 à 16:45
La taille d'un tableau devrait être un multiple de la valeur de l'alignement (généralement 4 octets) sinon on "perdra" les octets qui seront alloués pour l'alignement.
Ici, 25 sera transformé en 28 par le compilo.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 9 févr. 2008 à 19:14
SAKingdom, puisque tab[25] et tab[28] generent le meme code, restons cohérent avec le code. On ne va pas déclarer un tableau à 28 places pour n'en n'utiliser que 25. On perdrait alors beaucoup en lisibilité puisque la personne qui repassera dernière nous ne comprendrait pas pourquoi on declare un tab de 28 pour n'en utiliser que 25.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 févr. 2008 à 20:16
Tout ceci ne sera qu'habitude, la lisibilité n'entre pour rien dans l'affaire.
Le jour où on vous demandera de mettre une fonction en SSE2 ou autre optimisation de ce genre, faudra tout recommencer si c'est fait à la "j'menfous".
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 9 févr. 2008 à 20:24
La taille des tableaux est souvent très grossis comparé à ce que l'on veut réellement utiliser alors 25 ou 28 ne changera rien dans la lisibilité.
Ce qui est incohérent est justement de mettre 25 comme taille alors que dans la réalité, ce sera 28 qui sera alloué.
Ensuite, pour reprendre vecchio, plus tôt un débutant saura ce qui se passe réellement derrière son code, plus tôt il maîtrisera le langage et ses subtilités. Abstraire totalement le programmeur de la réel gestion de la mémoire ne mènera qu'à former un programmeur C# ou Java ou autres interprétés (par là j'entends un programmeur ignorant tout du réel fonctionnement de son programme car masqué derrière toute sorte d'abstractions).