पहले (गैर सरणी) प्रश्न के भाग के लिए, यह दर्शाता है कि संकलक सूचक प्रकार के आधार पर बाइट्स की उपयुक्त संख्या को डी-आवंटित करने के लिए कोड सम्मिलित करता है ऊपर जवाब, काफी प्रदान नहीं करते मेरे लिए स्पष्ट उत्तर ... डिलीट ऑपरेटर 1) लागू होने पर एक विनाशक को कॉल करता है और फिर 2) "ऑपरेटर डिलीट()" फ़ंक्शन को कॉल करता है ... यह ऑपरेटर डिलीट करता है जो वास्तव में डी-आवंटित करता है। मैं भाग (1), यानी भाग में भूमिका निभाते हुए कंपाइलर-जेनरेट कोड देख सकता हूं। विनाशक का गंतव्य पता डाला जाना चाहिए। लेकिन कुछ हिस्सों में (2), यह एक पूर्व-मौजूदा लाइब्रेरी फ़ंक्शन है जो डी-आवंटन को संभालने में सक्षम है, तो यह डेटा के आकार को कैसे जानेंगे? ग्लोबल ऑपरेटर डिलीट - जो, मेरा मानना है कि सभी मामलों में इसका उपयोग तब तक किया जाता है जब तक कि क्लास-सदस्य/ओवरलोडेड-ग्लोबल वर्जन प्रोग्रामर द्वारा परिभाषित नहीं किया जाता है - डेटा की शुरुआत के बारे में केवल एक शून्य * तर्क स्वीकार करता है, इसलिए यह कर सकता है डेटा आकार भी पारित नहीं किया जाएगा। मैंने संकलक-जेनरेट किए गए कोड विचार को इंगित करने वाली चीजों को पढ़ा है, साथ ही चीजों को यह भी सुझाव दिया है कि वैश्विक ऑपरेटर गैर-सरणी के लिए हटा देता है, बस मुफ्त(), यानी उपयोग करता है। यह डेटा आकार को पॉइंटर प्रकार से नहीं जानता है, लेकिन डेटा से पहले कुछ बाइट्स देखकर, जहां आकार को नए/मॉलोक द्वारा रखा जाएगा। उत्तरार्द्ध एकमात्र समाधान है जो मुझे समझ में आता है, लेकिन शायद कोई मुझे अलग-अलग ज्ञान दे सकता है ...