Jump to content
  • Advertisement
Sign in to follow this  
Jarwulf

memory management examples?

This topic is 1962 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, never bothered much with memory management in C++ except when it was already in the code. I simply write my variables array etc without worrying about all that deallocating allocating stuff. I'm having a little bit of an issue understanding when it is necessary and when it is not. Now supposedly smart pointers are supposed to a handy blanket solution to C++ memory issues so that you don't have worry about anything else besides them right? Can somebody point me to some easy to understand samples of smart pointers specifically aimed toward someone who's trying to understand when they're necessary?

Share this post


Link to post
Share on other sites
Advertisement
Smart pointers aren't a magical fix all solution.

Common advice is to use stack allocation where you can, and where it makes sense. Only do heap allocation when it will be useful(i.e. you need to destroy and create things often or with strange lifetime that couldn't be controlled easily through function or object scoping.)

Smart pointers are basically just a simple object wrapped around "c-style" pointers that controls the lifetime of the memory automagically. For example a reference counted pointer like shared_ptr essentially just keeps track of how many references are live to the allocated memory, then just calls delete when the last reference dies.

They're mainly just considered good practice because they're a minor performance cost in order to more or less automate management of the objects for you. Though there are considerations still like making sure each reference can be destroyed and you aren't allocating bulk amounts of smart pointers in a tight loop(or something like that, which might have a visible performance impact.)

Share this post


Link to post
Share on other sites


Common advice is to use stack allocation where you can, and where it makes sense. Only do heap allocation when it will be useful(i.e. you need to destroy and create things often or with strange lifetime that couldn't be controlled easily through function or object scoping.)
 

When you need to create and destroy things often you will want to stay away from the heap as dynamic memory allocation is generally slow. Keeping an array arround of live and dead objects is generally faster, especially when reusing the dead objects again.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!