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
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 .
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:
- Initialisation d'un tableau en langage C
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
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
Modifié par lefousdu05 le 7/06/2011 à 22:10
^^
prypiat_child
Messages postés
1344
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
272
7 juin 2011 à 21:37
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)
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)
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
7 juin 2011 à 21:48
ok. Merci pour ton aide . thanks
prypiat_child
Messages postés
1344
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
272
7 juin 2011 à 21:50
7 juin 2011 à 21:50
De rien !^^ Marque "résolu" si c'est le cas ;-)
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
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 !
est valide,
mais *t contient l'adresse de t pas le contenu.
pour utiliser un pointeur :
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");
prypiat_child
Messages postés
1344
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
10 avril 2014
272
7 juin 2011 à 22:27
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 !^^
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 7/06/2011 à 22:47
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,
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,
7 juin 2011 à 21:42
Modifié par prypiat_child le 7/06/2011 à 21:44
7 juin 2011 à 21:47