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