Chop_chop
Messages postés10Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention 7 mai 2007
-
4 avril 2007 à 14:56
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 2010
-
4 avril 2007 à 20:13
Bonjour,
J'ai un petit soucis quant à l'allocation de mémoire pour un char* avec l'utilisation de malloc.
Voici mon code (bien allégé) :
Lorsque je fais mon printf, la taille affichée est 1520 (alors que cela devraot etre 1504, non?).
De plus, lorsque j'affiche ma chaine "fichier" non remplie, j'obtiens en fin de chaine " ²²²²½½½½½½½½¯¦¯¦ " qui correspondent à ces 16 car en trop...
Comment rectifier le problème et faire en sorte que fichier ne contienne que 1504 char sans les indésirables de la fin ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 4 avril 2007 à 15:43
Salut !
strlen() te donne la position du premier '0' (caractère de fin de chaine) trouvé. Donc elle compte tant qu'elle n'en trouve pas.
Si tu veux la taille allouée par le malloc, il faut utiliser _msize() je crois (#include <malloc.h>).
clempar55
Messages postés59Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention 4 avril 2007 4 avril 2007 à 19:45
Ici tu alloue de la mémoire mais elle n'est pas initialisée automatiquement. Le contenu de fichier est donc aléatoire et la position du premier '0' aussi et donc strlen renvoie aussi un résultat aléatoire.
Il faut que tu initialise manuellement ta memoire