Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Jan 19, 2000

Malloc and Free

Question:
If I use malloc locally in a function do I have to use free as well? Won't some other piece of the application eventually chew up the memory I mallocd, so it doesn't matter what happens to it when I'm done with it in my function?

Answer:
Your code must include a matching free() call for every malloc'd pointer. Otherwise, your code will cause memory leaks.

There is no magic sorcerer in the application that will automatically reclaim the allocated memory because both C and C++ assume that if you don't explicitly free dynamically-allocated memory, you want it to remain available throughout the lifetime of the application.

Depending on the operating system your using, the allocated memory may or may not be reclaimed after the application terminates, but never during the application's execution. For example, in DOS, leaked memory is lost until you reboot. On Win32, the leaked memory will be reclaimed after the application has terminated.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap