Freeing Memory That Is Already Freed
The following program allocates some memory, and then releases it twice. On some operating systems, your program will raise a SEGV on the second free request.
int main ()
{
void *s;
/* Get some memory */
s = malloc(sizeof(int)*200);
/* Now release the memory */
free(s);
/* Error: Release it again */
free(s);
return 0;
}