Crazy C++ Vector iterator -


मैं घोषणा करता हूं:

  typedef std :: tr1 :: shared_ptr & lt; वर्ग ए & gt; SharedPtr;  

और फिर:

<पूर्व> std :: vector & lt; SharedPtr & gt; Mlist;

और:

  टाइपिंगफ़ास्ट std :: vector & lt; SharedPtr & gt; :: इटरेटर लिस्टइटरेटर;  

mList.size () की वापसी 0 है, लेकिन जब मैं इटेरेटर का उपयोग करता हूँ, तो यह वेक्टर पर चलता है जो खाली है! यह मैं कैसे इटरेटर का उपयोग करता हूं:

  के लिए (ListIterator = mList.begin (); it! = MList.end (); यह ++) (* यह) - & gt; कुछ विधि () ;  

यह " someMethod () " निष्पादित करता है और फिर सेगमेंटेशन फॉल्ट फेंकता है कैसे एक खाली सदिश में चलती है Iterator ????

अधिक जानकारी

मैं जीटीके का उपयोग कर रहा हूं, इसलिए मैं मुख्य ऑब्जेक्ट को कैसे पास करता हूँ:

 g_signal_connect (G_OBJECT (विजेट), "ईवेंट", G_CALLBACK (और क्लासबी :: मज़ेदार), यह  

यह क्लासबी ही है

और फिर मैं इसे इसे इस तरह से प्राप्त करता हूं:

  gboolean ClassB :: fun (GtkWidget * विजेट, GdkEvent * event, Classb * डेटा) {// mList यहां है, और इस तरह से पहुंचा है: // डेटा- & gt; mList}  

mList को मैंने उद्धृत घोषित किया है, जब मैं अन्य विशेषता का उपयोग करता हूं, मान लें कि data-> xxx यह काम करता है और यह ठीक है, समस्या केवल mList के साथ होती है और यह विशेषता गतिशील रूप से आवंटित नहीं की जाती है।

मैंने * डेटा और यह के स्मृति पते की जांच की है, वे एक ही पते हैं।

मैंने समस्या का समाधान किया है, ओबजेक टी वर्ग बी को कुछ गुंजाइश के बाद नष्ट किया जा रहा था। वैसे भी, धन्यवाद लोग!


Comments

Popular posts from this blog

wpf - Line breaks and indenting for the XAML of a saved FlowDocument? -

gtk - Python Window Resize -

c# - read full xml file data over tcp -