Initialisation d'un tableau en langage C

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 .

2 réponses

  1. ^^
    1
    1. mais mon IDE me demande de declarer les caractere qui sont dans l'accoade .pourtant ils sont tous declarés comme "char" ????
      0
    2. Il te dit certainement cela parce que tu n'as pas mis de quotes... regarde ma réponse^^
      0
    3. ok. je comprend merci, pour ton aide
      0
  2. 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
    1. ok. Merci pour ton aide . thanks
      0
    2. De rien !^^ Marque "résolu" si c'est le cas ;-)
      0
    3. "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
    4. merci d'avoir corrigé !^^ ca va m'éviter de rester coincé sur une erreur stupide quand je me remettrai au C !^^
      0
    5. Contributeur
      @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