Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

किसी सरणी को सीमा से बाहर एक्सेस करने से C++ में कोई त्रुटि क्यों नहीं होती है?

यह इस तथ्य के कारण है कि C++ बाउंड चेकिंग नहीं करता है। जावा और पायथन जैसी भाषाओं में सीमा जांच होती है, इसलिए यदि आप सीमा से बाहर तत्व तक पहुंचने का प्रयास करते हैं, तो वे एक त्रुटि फेंक देते हैं। C++ डिज़ाइन सिद्धांत यह था कि यह समतुल्य C कोड से धीमा नहीं होना चाहिए, और C सरणी सीमा जाँच नहीं करता है।

इसलिए यदि आप इसे सीमा से बाहर एक्सेस करने का प्रयास करते हैं, तो आपके प्रोग्राम का व्यवहार अपरिभाषित है क्योंकि यह C++ मानक में लिखा गया है। सामान्य तौर पर, जब भी आपका सामना अपरिभाषित व्यवहार से होता है, तो कुछ भी हो सकता है। एप्लिकेशन क्रैश हो सकता है, यह फ्रीज हो सकता है, यह ठीक चल सकता है (या कम से कम ठीक चलता प्रतीत होता है), यह अन्य अनुप्रयोगों (वास्तव में आधुनिक ऑपरेटिंग सिस्टम पर नहीं) आदि में हस्तक्षेप कर सकता है।


  1. C++ में एक पूर्णांक सरणी की माध्यिका ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमें मेडियनक्लास नामक एक वर्ग को लागू करना है जिसमें निम्नलिखित तरीके शामिल हैं - add(value) जो डेटा संरचना में एक मान जोड़ता है। माध्य () डेटा संरचना में वर्तमान में मौजूद सभी संख्याओं का माध्यिका ढूँढता है। इसलिए, यदि हम 5, 3, 8 जोड़ते हैं और माध्यिका पाते हैं, तो आउटपुट 5.0

  1. C++ में खाली वर्ग का आकार शून्य क्यों नहीं है?

    मान लीजिए कि हमारे पास C++ में एक खाली क्लास है। आइए अब जांचते हैं कि इसका आकार 0 है या नहीं। दरअसल, मानक 0 आकार की वस्तुओं (या कक्षाओं) की अनुमति नहीं देता है, ऐसा इसलिए है क्योंकि इससे दो अलग-अलग वस्तुओं के लिए समान स्मृति स्थान होना संभव हो जाएगा। इस अवधारणा के पीछे यही कारण है कि एक खाली वर्ग का

  1. यह जांचने के लिए प्रोग्राम कि कोई ऐरे पालिंड्रोम है या C++ में STL का उपयोग नहीं कर रहा है

    एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है। सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर,