मुझे पता है कि डिबगिंग विकल्पों के तहत विजुअल स्टूडियो एक ज्ञात मान के साथ स्मृति भर जाएगा। क्या जी ++ (कोई संस्करण, लेकिन जीसीसी 4.1.2 सबसे दिलचस्प है) क्या कोई विकल्प है जो पहचानने योग्य मानों के साथ एक अनियमित स्थानीय पीओडी संरचना भर सकता है?ज्ञात मूल्यों के साथ जी ++ अनियमित पीओडी चर भर सकते हैं?
struct something{ int a; int b; };
void foo() {
something uninitialized;
bar(uninitialized.b);
}
मुझे उम्मीद है कि uninitialized.b
अप्रत्याशित यादृच्छिकता होने के लिए; स्पष्ट रूप से एक बग और आसानी से पाया गया कि अनुकूलन और चेतावनियां चालू हैं या नहीं। लेकिन केवल 0 जीचेतावनी के साथ संकलित। एक सहयोगी के पास ऐसा मामला था जहां इस तरह के कोड काम करते थे क्योंकि संयोग से वैध मूल्य था; जब संकलक ने अपग्रेड किया, तो यह असफल हो गया। उन्होंने सोचा कि ऐसा इसलिए था क्योंकि नया संकलक संरचना (ज्ञात तरीका है कि वीएस 0xCC भरता है) में ज्ञात मान डाल रहा था। अपने अनुभव में, यह अलग-अलग यादृच्छिक मान था जो मान्य नहीं होते थे।
लेकिन अब मैं उत्सुक हूं - क्या जी ++ की कोई सेटिंग है जो इसे मेमोरी भर देगी जो मानक अन्यथा कहलाए जाने वाले को अनियमित किया जाना चाहिए?
मुझे नहीं लगता था कि यह सुविधा मौजूद थी, लेकिन जीसीसी मैनुअल लंबा और गहरा है, और इससे पहले कि वहां क्या छिपा हुआ है, मैं आश्चर्यचकित हूं। –