गतिशील सरणियाँ
सरणी पर पिछले पाठ्यक्रमों में, हमने इस तरह से एक सरणी बनाने पर ध्यान दिया:
 
कॉन्स्ट इंट एनएमएक्स = 1000; इंट ए [एनएमएक्स]; या यह: intA[1000];
यह विधि एक स्थैतिक सरणी बनाती है। एक नुकसान यह है कि कार्यक्रम के चलने के दौरान सरणी तत्वों के आकार और प्रकार को बदला नहीं जा सकता है। 
उपरोक्त उदाहरण में, 1000 तत्वों की एक स्थिर सरणी बनाई गई है। अर्थात, प्रकार int (प्रकार int के 1000 तत्वों की एक सरणी) के 1000 तत्वों को संग्रहीत करने के लिए स्मृति में एक क्षेत्र आवंटित किया जाता है। सरणी की शुरुआत का पता  A चर में संग्रहीत होता है। यदि आपको 1000 से अधिक तत्वों की एक सरणी को संसाधित करने की आवश्यकता है, तो आपको विवरण बदलना होगा और प्रोग्राम को फिर से कंपाइल करना होगा। छोटी सरणियों के साथ काम करते समय, स्थिर सरणी के लिए आवंटित अधिकांश मेमोरी बर्बाद हो जाएगी।

कंप्यूटर मेमोरी के कुशल उपयोग के लिए, इसे गतिशील रूप से आवंटित करना आवश्यक है। दूसरे शब्दों में, कार्यक्रम के निष्पादन के दौरान आवश्यकतानुसार वस्तुओं के लिए मेमोरी आवंटित की जानी चाहिए (नई वस्तुओं का निर्माण)।

C++ में,   ऑपरेशन <कोड>नया  मुक्त मेमोरी क्षेत्र से मेमोरी आवंटित करता है, और ऑपरेशन डिलीट आवंटित मेमोरी को हटा देता है। 
 
डायनेमिक वेरिएबल बनाने और हटाने का एक उदाहरण
इंट * ए = नया इंट; // प्रकार int का एक वस्तु बनाएँ *ए = 15; // ऑब्जेक्ट इनिशियलाइज़ेशन एक पॉइंटर (*) के माध्यम से होता है // इनिशियलाइज़ेशन तुरंत किया जा सकता है // गतिशील वस्तु की घोषणा करते समय इंट * बी = नया इंट (25); cout << *ए << " " << *बी; // सूचक द्वारा आउटपुट मान मिटाना; // मुक्त आवंटित स्मृति बी हटाएं; ऑपरेशन नया दिए गए प्रकार का एक ऑब्जेक्ट बनाता है, इसके लिए मेमोरी आवंटित करता है, और दिए गए मेमोरी स्थान पर सही प्रकार का पॉइंटर लौटाता है। यदि मेमोरी आवंटित नहीं की जा सकती है, उदाहरण के लिए, यदि कोई मुक्त क्षेत्र नहीं है, तो एक शून्य सूचक लौटाया जाता है, अर्थात, सूचक 0 मान लौटाएगा। स्मृति आवंटन किसी भी प्रकार के डेटा के लिए संभव है: int फ्लोट , डबलchar आदि।

उसी तरह, C++ में आप एक डाइनैमिक ऐरे बना सकते हैं जो डायनेमिक मेमोरी एलोकेशन का उपयोग करेगा। ऐसे ऐरे का आकार, जिसका उपयोग प्रोग्राम के चलने के दौरान किया जा सकता है, उदाहरण के लिए, कीबोर्ड से डायनेमिक वेरिएबल्स बनाने के लिए।
 
C सिंटैक्स में
इंटएन; स्कैनफ़("%d", &एन); int * mas = malloc (sizeof(int) * N); // बाद में सरणी का आकार बदलने के लिए // realloc द्वारा उपयोग किया जाता है। ... मुक्त (मास); // आवंटित मेमोरी जारी करें <दिव>
C++ सिंटैक्स में
इंटएन; सिने>> एन; इंट * ए = नया इंट [एन]; // सरणी का आकार बदलने के लिए, आप कर सकते हैं // डेटा को किसी अन्य सरणी में स्थानांतरित करें, और पुराने को साफ़ करें ... हटाएं []मास; // आवंटित मेमोरी जारी करें // वर्ग कोष्ठक इंगित करते हैं // कि हम स्मृति को सरणी के नीचे से मुक्त कर रहे हैं