2013-10-06 9 views

उत्तर

11
int *a = new int; 

aडिफ़ॉल्ट-प्रारंभ वस्तु (जो मूल्य यानी इस मामले में अप्रारंभीकृत वस्तु अनिश्चित मानक के अनुसार है) की ओर इशारा करते है।

int *a = new int(); 

aमूल्य प्रारंभ वस्तु की ओर इशारा करते है (जो में शून्य प्रारंभ वस्तु इस मामले यानी मूल्य मानक के अनुसार शून्य है)।

+3

सी ++ 11 § 8.5, p7, सी ++ 11 § 8.5, पी 5, और सी ++ 11 § 8.5, मूल्य आरंभ, शून्य प्रारंभ करने के लिए p6, और डिफ़ॉल्ट-आरंभ क्रमश मामले ओपी में दिलचस्पी है (और मुझे अत्यधिक संदेह है)। – WhozCraig

+4

ध्यान दें कि परीक्षण इस अंतर को बेनकाब कर सकते हैं नहीं: विपरीत स्वत: भंडारण के लिए, गतिशील रूप से आबंटित स्मृति अक्सर शून्य साधारण परीक्षण कार्यक्रमों में के रूप में खत्म हो जाएगा, और केवल बड़े कार्यक्रमों में "कचरा" हो जब पहले स्मृति पुन: उपयोग किया जाता है। – hvd

5

पहले संस्करण का डिफ़ॉल्ट-initializes गतिशील int, जिसके लिए निर्मित प्रकार जैसे int किसी भी प्रारंभ प्रदर्शन नहीं करता आवंटित।

दूसरा संस्करण मूल्य initializes यह, int के लिए जिसका अर्थ है शून्य प्रारंभ, यह मूल्य 0 दे रही है।

संबंधित मुद्दे