क्या क्रॉस प्लेटफ़ॉर्म कोड लिखने के लिए char * का उपयोग करते समय कोई नुकसान होता है जो मेमोरी एक्सेस करता है?क्रॉस प्लेटफार्म कोड लिखते समय शून्य * के बजाय चार * का उपयोग कर कोई नुकसान?
अपडेट: उदाहरण के लिए, यदि मुझे उस प्रकार के आकार के साथ गठबंधन किया गया है, तो मुझे एक निश्चित प्रकार (एक int कहें) पर एक डिफ्रेंस किए गए char * कास्टिंग करने से पहले जांच करनी चाहिए? क्या कुछ आर्किटेक्चर अवांछित पहुंच पर अजीब परिणाम लौटाएंगे?
मैं स्मारक समस्याओं को डीबग करने के तरीके को बेहतर ढंग से समझने के लिए एक प्ले मेमोरी आवंटक पर काम कर रहा हूं। मुझे विश्वास है कि चार * पॉइंटर अंकगणित करने की क्षमता और शून्य से अधिक उन्हें कम करने की क्षमता के कारण बेहतर हैं, क्या यह सच है? निम्नलिखित सामान्य प्लेटफॉर्म पर निम्नलिखित धारणाएं हमेशा सच होती हैं?
sizeof(char) == 1
sizeof(char*) == sizeof(void*)
sizeof(char*) == sizeof(size_t)
जब तक आप 'char' उदाहरणों को संदर्भित नहीं कर रहे हैं, तब तक आपको' char * 'और' void * 'दोनों को जो कुछ भी इंगित करना है, उन्हें डालना होगा। – Aesthete
पता नहीं है कि यह 'गारंटीकृत है' लेकिन मेरे अनुभव में पहला 2 सुरक्षित होना चाहिए। आखरी वाला...??। – vdbuilder