char *test(int a)
{
    char *tmp;
    tmp = malloc (3);
    if (a > 99)
        return FALSE;
    sprintf (tmp, "%d", a);
    return tmp;
}
char *useme()
{
    int i;
    char *str;
    for (i = 0; i <= 100; i++)
    {

        str = test (i);
        if (str)
        {
            printf (str);
            free (str);
        }
    }
}

Example 1: A typical memory leak.

Back to Article