Problem: Attempt to free a heap block that has already been freed. Possible causes: Calling free() more than once with the same pointer. In C++, using the delete operator more than once on the same pointer. char *a = (char *)malloc(1); free(a); free(a); /* Duplicate free (duf) */