मॉलोक आवंटन समस्या: "अमान्य रूपांतरण" त्रुटि को समझना
मॉलोक का उपयोग करके मेमोरी आवंटित करने का प्रयास करते समय प्रदान किया गया कोड एक सामान्य समस्या पेश करता है( ). त्रुटि उचित कास्टिंग के बिना सीधे एक चार पॉइंटर को Malloc() के रिटर्न मान के असाइनमेंट से उत्पन्न होती है।
Malloc() फ़ंक्शन ढेर में मेमोरी के एक ब्लॉक को आरक्षित करता है और एक सामान्य शून्य पॉइंटर लौटाता है। हालाँकि, कोड इस पॉइंटर को स्पष्ट प्रकार के रूपांतरण के बिना एक चार पॉइंटर को निर्दिष्ट करता है। यह बेमेल संकलन त्रुटि "शून्य से char` में अमान्य रूपांतरण को ट्रिगर करता है।"
रूपांतरण त्रुटि का समाधान
इस समस्या को हल करने के लिए, आप Malloc() के रिटर्न मान को स्पष्ट रूप से वांछित प्रकार में डालना चाहिए। इस मामले में, आपको एक चार पॉइंटर पर कास्ट करने की आवश्यकता है। सही घोषणा इस तरह दिखनी चाहिए:
char *foo = (char*)malloc(1);
यह कास्टिंग ऑपरेशन स्पष्ट रूप से Malloc() द्वारा लौटाए गए सामान्य शून्य सूचक को परिवर्तित करता है एक चार सूचक के लिए। . उत्तर है, हाँ। जी के साथ संकलित कोड सी मानक पर डिफ़ॉल्ट होता है, जिसके लिए ऊपर दिखाए गए कास्टिंग की आवश्यकता होती है। यह सुनिश्चित करता है कि कंपाइलर प्रकार के रूपांतरणों को सख्ती से संभालता है और संभावित मुद्दों या अपरिभाषित व्यवहार को रोकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3