Relis mon post :mouarf:
edit: j'avais édité, mais vous êtes trop rapide :D
Version imprimable
Relis mon post :mouarf:
edit: j'avais édité, mais vous êtes trop rapide :D
Commentaires et critiques :
caractères n'est pas un type de données en C. On doit dire "Un type char [] est un tableau de char".Citation:
Un type char [] est un tableau de caractères.
Un bloc mémoire est alloué et se trouve à l'adresse de la variable qui est celle du premier char du tableau (pour être précis, les types sont différents : la variable est un tableau, son adresse est l'adresse d'un tableau donc de type : char(*)[] . Le premier char du tableau a une adresse du type 'adresse d'un char' : char*).Citation:
Un bloc mémoire est alloué et se trouve à l'adresse de la variable - le premier caractère.
C'est différent d'un char*, un pointeur sur char, qui pointe normalement vers un objet de type charCitation:
Qui est différent de char *, un pointeur de caractère, qui pointe vers une adresse normalement de type char.
ou
C'est différent d'un char*, un pointeur sur char, qui contient normalement l'adresse d'un objet de type char
On peut allouer de la mémoire pour stocker du texte,Citation:
On peut allouer de la mémoire pour écrire du texte,
Je n'ai rien compris.Citation:
mais ce dernier se trouvera à la mémoire alloué, qui est différent de char [] car l'emplacement mémoire est fixe, donc la variable de type char[] lira forcement le tableau de caractères à partir de son adresse et non d'un nouvel emplacement qu'on voudrait lui attribuer
Pour stocker du texte, il faut un tableau.
- si ce texte est constant et connu avant la compilation, le tableau contenant le texte peut avoir été réservé (plutôt que créé) et initialisé par le compilateur et on récupère l'adresse du début de ce tableau que l'on met dans un pointeur (objet permettant de stocker des adresses) comme ici char const *p = "Hello";.
- le tableau peut être créé par une définition char tab[...]. Par exemple création et initialisation du tableau : char tab[] = "Hello";.
- le tableau peut être créé par allocation dynamique auquel cas on récupère l'adresse du début du tableau que l'on met dans un pointeur. Reste à remplir le tableau.
Par exemple création et remplissage du tableau :
Code:
1
2 char* p = malloc(6); if(p!=NULL)strcpy(p,"hello");
Oui c'est ce que j'ai dis :mouarf:
-- j'y arrive vraiment pas dis-donc, faut toujours qu'il y ait une phrase pas compréhensible :cry::)
bon, plus sérieusement, c'est bon j'ai compris, c'est juste que j'utilise pas les bons termes:D