2010-03-29 7 views
5

मैं "intitializer fails to determine size of 'K'" लाइन पर त्रुटि मिलती हैत्रुटि: प्रारंभकर्ता 'के' के आकार का निर्धारण करने के

int K[]= new int[Vertices->total]; 

मैं इसे कैसे हल करते विफल रहता है?

+3

पर स्मृति आप कि क्या आप 'सी में प्रोग्रामिंग कर रहे हैं ++' या 'निर्णय लेना होगा कि आवंटन के लिए इस्तेमाल किया जा सकता था सी', और, यदि यह बाद वाला है, चाहे आप 'C99' का उपयोग कर रहे हों या नहीं। –

+1

लुसी त्रुटि संदेश। आप किस कंपाइलर का उपयोग कर रहे हैं? –

+1

@nobugz असल में, मुझे लगता है कि यह एक उचित त्रुटि संदेश है। –

उत्तर

18

बदलें

int K[]= new int[Vertices->total]; 

int *K = new int[Vertices->total]; 

1 से एक एक सरणी है, जहां आप K एक पूर्णांक सरणी के लिए एक संदर्भ है बनाने के Java तरीका है। लेकिन C++ में हमें K पूर्णांक प्रकार के लिए एक पॉइंटर बनाने की आवश्यकता है।

+0

धन्यवाद यह काम कर रहा है, लेकिन क्या मैं एरे – smile

+1

@ शिवा लगभग स्टोर करने के लिए एक ही के का उपयोग कर सकता हूं। सी में Arrays वास्तव में स्मृति के ब्लॉक के लिए संकेतक हैं। इसलिए, यदि आप पूर्णांक की सरणी की सरणी में हेरफेर करने के लिए के का उपयोग करना चाहते हैं, तो घोषणा 'int K ** = new int * [ 'के साथ – sum1stolemyname

3

new int[Vertices->total] एक सूचक देता है और इसलिए, int *K = new int[Vertices->total]; ठीक काम करना चाहिए।

आप संकलन समय पर Vertices->total के आकार पता है (यानी लगातार) तो आप int K[Vertices->total]; // ढेर

संबंधित मुद्दे