Re: Allocation de memoire
Code:
char * ptrchaine = "une autre";
Va creer une chaine "constante" (non modifiable) et allouer la memoire dans chaine directement.
Par contre :
Citation:
char *chaine;
chaine = "une autre";
N'aurait pas marche :wink:
Citation:
et aussi est ce que la declaration d'un tableau est une auto allocation en meme temps ???
Un tableau est alloue de la taille de ses elements :
Prendra 200 chars .. par contre sa valeur n'est pas initialisee par defaut !
Re: Allocation de memoire
Citation:
Envoyé par DavG
Code:
char * ptrchaine = "une autre";
Va creer une chaine "constante" (non modifiable) et allouer la memoire dans chaine directement.
Gni ? Un pointeur sur char nommé 'ptrchaine' est créé. Il est initialisé avec l'adresse d'une chaine non modifiable. Il eût été préférable d'écrire :
Code:
char const * ptrchaine = "une autre";
Citation:
Par contre :
Code:
1 2 3
| char *chaine;
chaine = "une autre"; |
N'aurait pas marche :wink:
Meuh ? T'as essayé ?
Tu confonds avec
Code:
1 2 3
| char chaine[123];
chaine = "une autre"; |
Ca effectivement, c'est une erreur de syntaxe. (On ne sait pas 'assigner' un tableau ou une chaine en C)
Un tableau et un pointeur sont des choses différentes. Très différentes.
Re: Allocation de memoire
Citation:
Envoyé par Emmanuel Delahaye
Gni ?
Ca veut dire quoi "Gni" ???
Citation:
Un pointeur sur char nommé 'ptrchaine' est créé. Il est initialisé avec l'adresse d'une chaine non modifiable. Il eût été préférable d'écrire
C'est plus propre en effet, mais ca revient au meme :wink:
Citation:
Meuh ? T'as essayé ?
Tu confonds avec
Code:
1 2 3
| char chaine[123];
chaine = "une autre"; |
En fait j'avais tape un peu vite et je pensais plus a un simple
Citation:
char *chaine;
strcpy (chaine, "une autre);
.. desole de n'avoir pas teste :?
Re: Allocation de memoire
Citation:
Envoyé par DavG
En fait j'avais tape un peu vite et je pensais plus a un simple
Citation:
char *chaine;
strcpy (chaine, "une autre);
.. desole de n'avoir pas teste :?
Dommage, car tu aurais vu que ton dernier bout de code plante : tu copies une chaîne dans un pointeur non initialisé par un malloc de la bonne taille ==> Grosse plante. :wink:
Re: Allocation de memoire
Citation:
Envoyé par Trap D
Citation:
Envoyé par DavG
En fait j'avais tape un peu vite et je pensais plus a un simple
Citation:
char *chaine;
strcpy (chaine, "une autre);
.. desole de n'avoir pas teste :?
Dommage, car tu aurais vu que ton dernier bout de code plante : tu copies une chaîne dans un pointeur non initialisé par un malloc de la bonne taille ==> Grosse plante. :wink:
Celui-la je le savais .. je parlais de code qui ne marcherait pas, pas de code qui marcherait dans ce cas-la :wink: