Pb avec variable char

enrageur Messages postés 54 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 21 novembre 2008 - 2 nov. 2004 à 21:29
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 3 nov. 2004 à 17:39
voila j'utilise des variables de type char. je l'initialise de la maniere suivante :

char tab[256];

Mon probleme est que j'aimerais initialiser le tableau de caractere a l'aide d'un variable de type int, mais je n'y arrive pas.

19 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
2 nov. 2004 à 21:39
Excuse moi, mais tu veux dire quoi par la ? Initialiser un char avec un int ? bas c plus un char alors :)
Ou alors c'est de ca que tu parles: char test[5]="12";
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
2 nov. 2004 à 21:48
houlà .. 'comprends pas non plus ce que tu veux faire ...

Manu
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
2 nov. 2004 à 21:52
Salut,
Le problème avec les variables char c'est qu'elles sont signées (-128 à 127). Si tu veux des entiers non signés tu peux utiliser les "unsigned char" mais moi je préfère les BYTE (0 à 255). Tu les déclares ainsi:
unsigned char tab[256];
ou
BYTE tab[256];
J'espère que c'est ce que tu cherches.
0
enrageur Messages postés 54 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 21 novembre 2008
2 nov. 2004 à 22:13
voila j'aimerais faire un truc comme ca :

int taille;
taille = sizeof(toto); // toto peut etre de n'importe quel type

char tab[taille];

voila j'espere que je suis plus clair la. C'est quelquechose comme ca que je voidrais mais je n'y arrive pas.
0

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

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 nov. 2004 à 22:27
Salut,
Faut passer par une allocation dynamique alors, avec malloc() et free() par exemple.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 nov. 2004 à 22:35
ou bien mettre taille en const int
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
2 nov. 2004 à 22:38
Il me semble pas, ce que tu veux faire ne pose pas de problème.
En tout cas, je l'utilise abondament comme tu le fais, sauf je ce ne sont pas des char dans mon cas.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 nov. 2004 à 22:44
int taille=4;
char tab[taille];


ne devrait pas marcher
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
2 nov. 2004 à 23:13
"ou bien mettre taille en const int " << FAUX !

Ca ne marchera pas, il faut faire un DEFINE ou encore utiliser l'alloc dynamik, un const int n'a pas valeur de constantes en 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
2 nov. 2004 à 23:23
Essaie d'oublier les concepts de vrai et de faux... Ca dépend visiblement du compilo, gcc l'accepte, et je trouve cela normal
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
2 nov. 2004 à 23:27
Nan bah nan, la norme ANSI dit ke c faux, donc ca devrait l'etre pour tt les compilos..Ah la la, le monde serait mieux si les compilos etaient les mm pour tous !
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 nov. 2004 à 00:09
ON NE DECLARES PAS UN TABLEAU AVEC UNE VARIABLE, ON SE SERT D'UN POINTEUR !!!
char *chaine;
chaine=malloc(100*sizeof(char)) //je ne suis pas très sur...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 nov. 2004 à 00:13
Pas très sur de quoi?
besoin d'un cast en C++, c'est tout
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 nov. 2004 à 00:16
char *chaine;
chaine = (char *)malloc((taille_de_la_chaie_desiree)*sizeof(char)+1);
voila pour être précis...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 nov. 2004 à 01:02
Devant les désaccord :)
Sur le net, de toute facon, il est dit clairement que dans le cadre du C++, c'est la fonction new qu'on utilise dorénavent.
On a donc char* p = new char[x];

Mais c'est vrai que je suis étonné que char p[x] marche correctement sur mes programmes, puisque finalement, ca n'a pas de sens.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 nov. 2004 à 01:35
Salut,
AlexMAN >> L'exemple suivant marche sans problème sur Visual C++ 6:
int const nombre=3;
char tab[nombre];
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 nov. 2004 à 10:23
En fait ca marche si on compile en mode C++, mais pas en C.
0
enrageur Messages postés 54 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 21 novembre 2008
3 nov. 2004 à 17:25
Merci de vous avoir autant interesse a mon cas. Mais je ne veut pas mettre de constante comme valeur d'initialisation du char. La valeur d'initialisation et la taille d'un fichier que je seletionne et que je charge une fois que le programme est lance. Je n'ai donc pas acces a cette donnee avant de compiler, c'est pour ca que je veut l'initialiser avec une variable.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 nov. 2004 à 17:39
dans ce cas les pointeru sont les meileurs choix
0
Rejoignez-nous