new का उपयोग डायनामिक मेमोरी अलोकेशन के लिए किया जाता है। इस मामले में अलोकेट की गई मेमोरी हीप पर जाती है। इस प्रकार के मेमोरी अलोकेशन से कई लागतें जुड़ी होती हैं, साथ ही प्रोग्रामर को मैन्युअल मेमोरी सफाई और प्रबंधन करना पड़ता है। इस प्रकार के अलोकेशन का उपयोग केवल तब किया जाना चाहिए जब:
- आप कंपाइल टाइम पर नहीं जानते कि आपको कितनी मेमोरी चाहिए।
- आप मेमोरी अलोकेट करना चाहते हैं जो वर्तमान ब्लॉक को छोड़ने के बाद भी बनी रहे।
इनके अलावा, ऐसे बहुत कम मामले हैं जहां डायनामिक मेमोरी अलोकेशन आवश्यक हो। ऐसा इसलिए है क्योंकि C++ में डिस्ट्रक्टर की अवधारणा है। यह फ़ंक्शन तब कॉल होता है जब किसी ऑब्जेक्ट/रिसोर्स का जीवनकाल समाप्त होता है। इसका उपयोग मेमोरी फ्री करने के लिए किया जा सकता है। इसलिए जब आप एक ऐसा ऑब्जेक्ट बनाते हैं जिसके अपने ऑब्जेक्ट्स होते हैं, और मुख्य ऑब्जेक्ट स्कोप से बाहर जाता है, तो यह अपने चाइल्ड ऑब्जेक्ट्स की मेमोरी भी फ्री कर देता है।
इन वेरिएबल्स को ऑटोमेटिक वेरिएबल्स कहा जाता है और इस प्रकार के मेमोरी उपयोग को ऑटोमेटिक स्टोरेज कहा जाता है। आपको इसका उपयोग करना चाहिए क्योंकि यह टाइप करने में तेज है, रन होने पर तेज है और मेमोरी/रिसोर्स लीक के प्रति कम संवेदनशील है।