Allocation mémoire [Résolu]

Signaler
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004
-
Messages postés
48
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
26 juillet 2005
-
je demande à mon prog d'allouer 40 caractère pour un char*
et l'allocation se fait tjrs sur seulement 4 caractères
pourquoi?

4 réponses

Messages postés
48
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
26 juillet 2005
3
Peut etre cela vient il d'une petite confusion entre :

strlen(machaine); // retourne la taille d'une chaine de char

et

sizeof(machaine); // retourne la taille du pointeur, soit 4 octets
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
ben oui, sizeof pointeur sera toujours 4 dans un prog 32 bits.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
48
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
26 juillet 2005
3
Ah ben gagné. Pour avoir la taille de ta chaîne de caractères il faut que tu utilises strlen(), mais comme cela a été expliqué dans un post précédent, la fonction strlen() te retrounera le nombre de caratères présents dans ton tableau et pas l'espace alloué au tableau lors de sa création.
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

pour vérifier j'utilise la fonction sizeof(chaine);

""
char* chaine;
char res[4];
chaine=new char[40];
sprintf(res,"%d",sizeof(chaine));
''''''