Initialisation d'un tableau en langage C

Fermé
basopro Messages postés 100 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 3 juin 2015 - 7 juin 2011 à 21:32
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 - 8 juin 2011 à 17:32
Bonjour, chers amis.
J'aimerais juste savoir s'il est possible d'initialiser un tableau (vecteur) de 6 cases et a type caractere de cette maniere.

{ char T[6]={a,e,i,o,u,y};
.
.
}

je sais qu cela est possible pour les "entiers" et pour les type caractere (char) ?

merci pour nvotre comprehension et je souhaite avoir une reponse de vous .
A voir également:

2 réponses

lefousdu05 Messages postés 30 Date d'inscription mercredi 18 mai 2011 Statut Membre Dernière intervention 28 février 2013 4
Modifié par lefousdu05 le 7/06/2011 à 22:10
^^
1
basopro Messages postés 100 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 3 juin 2015 1
7 juin 2011 à 21:42
mais mon IDE me demande de declarer les caractere qui sont dans l'accoade .pourtant ils sont tous declarés comme "char" ????
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 7/06/2011 à 21:44
Il te dit certainement cela parce que tu n'as pas mis de quotes... regarde ma réponse^^
0
basopro Messages postés 100 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 3 juin 2015 1
7 juin 2011 à 21:47
ok. je comprend merci, pour ton aide

    
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
7 juin 2011 à 21:37
Oui, mais pense à mettre des quotes : char T[6]={'a','e','i','o','u','y'};

il me semble qu'en initialisant comme ca d'ailleurs, tu n'es même pas obligé de noter la taille du tableau (mettre seulement char *t = {'a','e','i','o','u','y'} ou même char *t = "aeiouy" doivent farie la même chose mais à confirmer)
0
basopro Messages postés 100 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 3 juin 2015 1
7 juin 2011 à 21:48
ok. Merci pour ton aide . thanks
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
7 juin 2011 à 21:50
De rien !^^ Marque "résolu" si c'est le cas ;-)
0
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
7 juin 2011 à 22:09
"il me semble qu'en initialisant comme ca d'ailleurs, tu n'es même pas obligé de noter la taille du tableau (mettre seulement char *t = {'a','e','i','o','u','y'} ou même char *t = "aeiouy" doivent farie la même chose mais à confirmer) "

presque !

char t[]="aeiouy";

est valide,
mais *t contient l'adresse de t pas le contenu.
pour utiliser un pointeur :
*t = malloc(6*sizeof(char));
strcpy(t,"aeiouy");
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
7 juin 2011 à 22:27
merci d'avoir corrigé !^^ ca va m'éviter de rester coincé sur une erreur stupide quand je me remettrai au C !^^
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 7/06/2011 à 22:47
@periplasme,

mais *t contient l'adresse de t pas le contenu.
pour utiliser un pointeur :
*t = malloc(6*sizeof(char));
strcpy(t,"aeiouy");

t=malloc(6...) et non *t...
N'oublie pas que "aeiouy" comporte 7 caractères et non 6. Il faut donc faire malloc(7) sinon tu récriras d'un byte dans le heap.

@tous,
char t[]="aeiouy"; est l'équivalent de char t[7]={'a','e','i','o','u','y'}; et non de char t[6]=...
La notion char t[]="..." prendra en compte le caractère terminal '\0'.

Cdlt,
0