Pb de variable

mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 - 9 févr. 2008 à 16:07
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 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..

ca doit être tout bête

8 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
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.

A+

Mon site internet : http://pistol.petesampras.free.fr
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
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.

C++ (@++)<!--
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 févr. 2008 à 17:11
SAKingdom> Est-ce un problème? Je ne pense pas qu'un débutant doit se soucier de ca (moi-même qui ne suis plus débutant, je ne m'en soucie pas)

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 févr. 2008 à 17:20
Non mais c'est bon à savoir quand même.

C++ (@++)<!--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
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.

A+

Mon site internet : http://pistol.petesampras.free.fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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".

ciao...
BruNews, MVP VC++
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
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).

C++ (@++)<!--
0
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 3
9 févr. 2008 à 21:56
Wow merci bcp pour vos réponses si précises :)

je m'en vais voir ton site Pistol!

A plouch
0
Rejoignez-nous