If not does that mean that I would have to end each function by deleting all local variables if I wanted to prevent 100% of memory leak?
Dynamically allocated memory using malloc, realloc, new, and new[] must be deleted. These are in heap memory. Others would get automatically deallocated.