À moins de vouloir faire des test avec Valgrind. Je ne vois pas l'intérêt à se précipiter sur la dernière version du compilateur.
Bonjour,
Avec Windows j'utilise la version 4.5 de Mingw qui permet de compiler en 64 bits les applications Wndows ou console. Il y a déjà pas mal de spécificités de C0x.1x. Mais ce n'est pas indispensable.
Avec Linux la version 4.4.3. J'aimerais bien que ma distribution mette à jour tout le GCC. Pour le C il existe la glib qui propose une extension du C, mais il y a des fuites mémoire sur certaines commodités. par ex :
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <glib-2.0/glib.h>
/* pour compiler
gcc `pkg-config --cflags --libs glib-2.0 --libs ` -s -Os -o a toto.c
*/
void do1()
{
GArray *g;
gint i;
g = g_array_new ( FALSE, FALSE, sizeof ( gint ) );
for( i = 0 ; i < 12; i++)
g_array_append_val( g, i );
for( i = 0 ; i < 12; i++)
g_printf ("I = %02d\n", g_array_index (g, gint, i) );
g_printf( "size array= %lu\n" , g->len );
g_array_free (g, TRUE );
if( g )
{
g_free( g );
g = NULL ;
}
}
int main (int argc, char **argv)
{
do1() ;
return 0;
}
Cela donne :
==29208==
==29208== HEAP SUMMARY:
==29208== in use at exit: 4,780 bytes in 7 blocks
==29208== total heap usage: 11 allocs, 4 frees, 5,388 bytes allocated
==29208==
==29208== LEAK SUMMARY:
==29208== definitely lost: 0 bytes in 0 blocks
==29208== indirectly lost: 0 bytes in 0 blocks
==29208== possibly lost: 1,488 bytes in 3 blocks
==29208== still reachable: 3,292 bytes in 4 blocks
==29208== suppressed: 0 bytes in 0 blocks
==29208== Rerun with --leak-check=full to see details of leaked memory
==29208==
==29208== For counts of detected and suppressed errors, rerun with: -v
==29208== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
J'ai essayé d'autre options pour GArray, toujours ces fuites mémoires. Au moins les équivalents de GArray en C++ ne font pas toutes ses fuites mémoires.
Cordialement.