तो मैं एक struct
:एक कॉन्स int const * variable को ठीक से कैसे प्रारंभ करें?
typedef struct myStruct
{
const int *const array_ptr;
} myStruct_s;
मैं int
के const
सरणी है:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = &constArray
},
//...
}
:
const int constArray[SIZE1] =
{
[0] = 0,
[1] = 1,
[2] = 2,
//...
};
अब मैं myStruct_s
के const
सरणी नामित intializers साथ प्रारंभ है मुझे चेतावनी मिलती है:
प्रकार का एक मूल्य "स्थिरांक पूर्णांक (*) [SIZE1]" प्रकार का एक इकाई "स्थिरांक पूर्णांक * स्थिरांक"
मैं कैसे ठीक से इस सूचक को प्रारंभ कर सकते हैं प्रारंभ करने में इस्तेमाल नहीं किया जा सकता है?
मैं से बचने के लिए करना चाहते हैं:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = (const int *const) &constArray
},
//...
}
यदि संभव हो, के बाद से मुझे लगता है कि मैं संकलक बता "मुझे लगता है मैं क्या कर रहा हूँ पता नहीं है, बस प्रकार की जांच नहीं करते कृपया" ...
आपकी मदद के लिए धन्यवाद :)।
'array_ptr = & constArray [0];' – Nadir
ऐरे इंडेक्स 0 से शुरू होते हैं। आपके असाइनमेंट ('[1] = 1') 1 से शुरू होते हैं। समस्या से संबंधित नहीं, लेकिन संदिग्ध लग रहा है। – davmac
@ डेवमैक: आप सही हैं! दरअसल मैं सरणी भरने के लिए इंडेक्स के रूप में 'enum' का उपयोग करता हूं। मैं जादू संख्याओं का कभी भी उपयोग नहीं करता :)। मैंने अपने कोड को थोड़ा सा सरल बना दिया! – Plouff