अन्य उत्तरों मानकों के परिप्रेक्ष्य से दृश्य कहते हैं, लेकिन यहां है यह क्रैश हो जाता है।
कंपाइलर्स आम तौर पर प्रोग्राम अक्षर - विशेष रूप से तार - केवल पढ़ने योग्य स्मृति में डालते हैं। स्मृति को ओएस द्वारा केवल पढ़ने के लिए चिह्नित किया जाता है, इसलिए इसे लिखने का कोई भी प्रयास फंस जाएगा और आपके प्लेटफॉर्म पर, सेगमेंटेशन गलती यही इंगित करती है; कुछ स्मृति पर ऑपरेशन करने का प्रयास जिसकी अनुमति नहीं है। खराब स्मृति उपयोग से जुड़े अन्य प्रकार की दुर्घटना एक बस त्रुटि है, जो आम तौर पर एक गैर-गठबंधन स्मृति पहुंच या उस पृष्ठ पर लिखने का संकेत देती है जो मैप नहीं है। सी कोड के लिए, अंतर लगभग पूरी तरह अकादमिक है (कुछ अन्य भाषा कार्यान्वयन इन दोषों का उपयोग स्मृति को प्रबंधित करने में उनकी सहायता के लिए करते हैं)।
ध्यान दें कि केवल पढ़ने के लिए लिखने का लेखन भाषा के आधिकारिक अर्थशास्त्र से स्वतंत्र है। जबकि आपके पास char*
इंगित हो सकता है, फिर भी आप इसे लिख नहीं सकते हैं। हमेशा प्रोग्राम अक्षर का इलाज करें जैसे कि वे निरंतर स्मृति को इंगित कर रहे हैं और आप गलत नहीं होंगे (कि वे डिफ़ॉल्ट रूप से नहीं हैं पुराने कार्यक्रमों के साथ संगतता का समर्थन करने की आवश्यकता के कारण)।
स्रोत
2010-09-03 19:32:33
क्या मंच? मेरे लिये कार्य करता है... –