मुझे पता है: char * char के लिए एक सूचक है। और int * int के लिए एक सूचक है। तो इसका मतलब है कि स्मृति पतों 32 बिट व्यापक हैंchar का आकार * int * के आकार के समान है?
तो अब लगता है मुझे 32 बिट मशीन पर हूँ,:
तो, मैं दो बातें निम्न की पुष्टि करना चाहते हैं। इस प्रकार इसका मतलब है कि char * और int * का आकार 32 बिट्स (4 बाइट्स) दोनों है, है ना? भी int * * का आकार int * के आकार के समान है?
मान लीजिए कि मेरे पास है: int * ptr;
इस प्रकार अब कर * ((चार * *) ptr) = 0x154 एक ही रूप में * ((int *) ptr) = 0x514 एक ही है, सही है? (0x514 बस कोई यादृच्छिक स्मृति पता है)
प्लेटफ़ॉर्म: मैं x86 पर हूं।
पीएस .: मुझे पता है कि प्रकार कास्टिंग कोड के लिए सुझाए गए तरीके नहीं है। लेकिन मैं कर्नेल कोडिंग कर रहा हूं, इस प्रकार मुझे टाइप कास्टिंग करना है!
भले ही मानक यह नहीं कहता है, मुझे संदेह है कि पर्यावरण को ढूंढना आसान होगा जहां यह वास्तव में अलग है। – Mysticial
जबकि उनका आकार अभ्यास में समान है, उनकी संरेखण आवश्यकताएं नहीं हैं। – DCoder
यदि आप "कर्नेल कोडिंग" कर रहे हैं, जो कोड पहले से चलने वाले प्लेटफ़ॉर्म की संख्या को सीमित कर देता है। समर्थित ओएस स्पेस के साथ जांचें। –