It may not be a double free per se, but you are incrementing a. Rather, have another pointer to be a copy of a, and increment that. That way, free(a) will operate on the original location pointed to...