Initialisation d'un tableau en langage C

basopro Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -  
periplasme Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   4
 
^^
1
basopro Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   1
 
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 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
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   Statut Membre Dernière intervention   1
 
ok. je comprend merci, pour ton aide

    
0
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
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   Statut Membre Dernière intervention   1
 
ok. Merci pour ton aide . thanks
0
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
De rien !^^ Marque "résolu" si c'est le cas ;-)
0
periplasme Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   53
 
"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 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
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   Statut Contributeur Dernière intervention   1 846
 
@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