Les blocs alloué par 1malloc sont ils libérés a la sortie d'1 fonction - C - Programmation
Marsh Posté le 17-06-2004 à 00:18:05
les blocs sont libéré a la sortie de la fonction
[citation=766607,0,2][nom]Taz a écrit[/nom]
et déclara ta fonctionne comme retournant void
oui j'ai fais ca vite fais, en effet, il faut mettre
void fonction (char **entete)
alors la seul solution pour recupere une chaine de caractere c'est de faire une copie de tout les elements de tmp dans *entete et non pas une simple copie d'adresse du bloc de tmp...
Si c'est bien ca, dommage. Je trouvais ca tres propre.
Marsh Posté le 17-06-2004 à 00:31:40
weed a écrit : les blocs sont libéré a la sortie de la fonction |
Mais non, les blocs ne sont pas liberes a la sortie de la fonction, c'est ce qu'il voulait te dire justement...
Tu trouves ca tres propre? Moi pas parce qu'a chaque malloc, il faut son free correspondant, ce que tu ne fais pas ici.
Marsh Posté le 17-06-2004 à 01:23:31
ReplyMarsh Posté le 17-06-2004 à 02:21:19
Citation : NOM |
ca a l'air d'etre genial. Si j'ai bien compris n a plus besoin de faire de free si on rappelle calloc avec le meme pointeur.
mais par contre ce qui est dommage :
Citation : BOGUES |
Marsh Posté le 17-06-2004 à 02:24:52
thermocline a écrit : Mais non, les blocs ne sont pas liberes a la sortie de la fonction, c'est ce qu'il voulait te dire justement... |
je trouve ca genial car on ne deplace pas les données pour rien :
Faire une allocation d'un nouveau bloc
puis copié ...
Pour moi y a pas plus optimisé. L'espace memoire est deja créé, autant le reutiliser.
Et bien quand je n'aurais plus besoin de ce bloc memoire, j'indiquerais a quel adresse ou il faut qu'il libere a l'aide d'un pointeur.
Marsh Posté le 17-06-2004 à 02:26:13
ehh au fait vous avez bien raison, cela fonctionne maintenant,
ahh les mystere de l'informatique
Marsh Posté le 17-06-2004 à 09:27:38
moi je m'en sert de temps en temps pour ces cas là : une chaine temporaire. alloca a l'avantage d'être très rapide.
C'est pas standard, mais dispo sous Windows, ce qui m'incite à penser qu'elle est généralement présente.
Y'a pas la possibilité de créer des tableau de taille non constante en C99 ?
Marsh Posté le 17-06-2004 à 09:45:09
si. mais faut toujours faire attention, parce que si ton [n] est trop grand, tu fais péter ta pile, et là t'auras pas de NULL retourné pour te dire que l'allocation a échouée
Marsh Posté le 17-06-2004 à 00:01:05
voila je m'interrogeais sur la porté d'un malloc dans une fonction
je peux afficher les caracctere de entete dans la fonction mais des que je sors, ce n'est plus pris en compte ...
je pensais qu'avec un malloc, lorsque l'on sortais de la fonction, les blocs alloué n'etait pas libéré.
}
Message édité par weed le 17-06-2004 à 00:18:44