Hmm, man muss nur mal darauf achten welche Variable man freigibt. 
Hier mal ein kleines Beispiel, bei dem valgrind --leak-check=full nichts zu beanstanden hat.
Code:
#include <stdlib.h>
int main()
{
char **foo1 = NULL;
char **foo2 = NULL;
char **foo3 = NULL;
char **foo4 = NULL;
char **bar = realloc(foo1, 10 * sizeof(char *));
free(bar);
char **baz = (char **) realloc(foo2, 10 * sizeof(char *));
free(baz);
foo3 = (char **) realloc(foo3, 10 * sizeof(char *));
free(foo3);
foo4 = realloc(foo4, 10 * sizeof(char *));
free(foo4);
return 0;
}
Lesezeichen