cs_Cako19
Messages postés56Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 5 décembre 2005
-
19 mai 2004 à 15:25
cs_Cako19
Messages postés56Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 5 décembre 2005
-
24 sept. 2004 à 10:24
Bonjour,
J'ai un problème lorsque je souhaite libérer une chaîne de caractère et je ne trouve pas la réponse dans le forum bien que le sujet ait déjà été abordé.
Voilà le code que j'ai :
sha1 = (char*)malloc(20*sizeof(char)+1);
[ ou sha1 = (char*)malloc(sizeof(char*));]
...
...
... opérations avec sha1 où je lui affecte une chaine de caractère de 20 octets....
...
...
free( sha1 );
et sur le free( sha1 ), j'ai une grosse erreur qui arrête le programme.
cs_Cako19
Messages postés56Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 5 décembre 2005 19 mai 2004 à 15:50
Malheureusement ça ne marche pas et je ne sais pas si je modifie sha1 car la valeur est retournée par une fonction appartenant à une dll.
Du coup en fait, je ne pense pas que sha1 à proprement parlé est modifié.
Mais si jamais sha1 était modifié, comment faire pour libérer la mémoire ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 19 mai 2004 à 20:27
char* sha1;char* old sha1 malloc(21);
-->
error C2440: '=' : impossible de convertir de 'void *' en 'char *'
La conversion de 'void*' en pointeur vers non 'void' nécessite un cast explicite