Q:

C automatic variables

What happens if we free an automatic variable using free()?
What about in the following code: if n is static does it get automatically free'd after the last loop iteration, can we free it, or what?
for(count = 0; count < 5; count++) {  
    static int i += 1
}

A:

What happens if we free an automatic variable using free()?  

It will invoke undefined behavior.   
Argument to free must be a pointer that was returned by memory allocation function (malloc, calloc, realloc). The argument may also be a null pointer, in which case the call of free has no effect.

