Initialisation d'un tableau en langage C

basopro Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -  
periplasme Messages postés 422 Statut Membre -
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. lefousdu05 Messages postés 33 Statut Membre 4
     
    ^^
    1
    1. basopro Messages postés 101 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
    2. prypiat_child Messages postés 1500 Statut Membre 273
       
      Il te dit certainement cela parce que tu n'as pas mis de quotes... regarde ma réponse^^
      0
    3. basopro Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   1
       
      ok. je comprend merci, pour ton aide
      
          
      0
  2. prypiat_child Messages postés 1500 Statut Membre 273
     
    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. basopro Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   1
       
      ok. Merci pour ton aide . thanks
      0
    2. prypiat_child Messages postés 1500 Statut Membre 273
       
      De rien !^^ Marque "résolu" si c'est le cas ;-)
      0
    3. periplasme Messages postés 422 Statut Membre 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
    4. prypiat_child Messages postés 1500 Statut Membre 273
       
      merci d'avoir corrigé !^^ ca va m'éviter de rester coincé sur une erreur stupide quand je me remettrai au C !^^
      0
    5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      @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