Bonjour !
En effet diogene, je m'étais aperçu de la perte de mémoire mais je n'avais pas internet pendant ces vacances alors je n'ai pas encore actualisé le code. Je crois bien que j'ai aussi fait une ou deux retouches plus esthétiques qu'autre chose, en tout cas ce sera dans le nouveau code. Je préviendrai quand il sera disponible.
Remplacer
if(fb->file == NULL) return NULL; // perte mémoire
par
if(fb->file == NULL) {free(fb); return NULL;}
Mais pour le void* moi j'aime bien parce que ça évite les warnings du compilateur. Je veux dire, la fonction n'est pas faite pour écrire des char* uniquement, mais n'importe quelle donnée.
Si on veut écrire des données int ou double ou n'importe quelle structure exotique on met tranquilement :
filebuf_addm(&ma_donnee, sizeof(ma_donnee), fb)
et le tour est joué...
Partager