मैं निम्नलिखित कोड:स्कोप और C++ संकेत
using namespace std;
vector<string*> v;
{
string s = "hello";
v.push_back(&s);
}
{
string ss = "goodbye";
v.push_back(&ss);
}
cout << v.at(0)->c_str() << endl;
cout << v.at(1)->c_str() << endl;
जो
goodbye
goodbye
प्रिंट अगर मैं हटाने गुंजाइश वाले कोष्ठक कोड
hello
goodbye
प्रिंट होगा क्या वास्तव में जब होता है मैं पहला गुंजाइश छोड़ देता हूं, कि पहली स्ट्रिंग के सूचक अब दूसरे को इंगित करते हैं?
यूबी, ल्यूक! यह सिर्फ यूबी है। आप भाग्यशाली हो गए कि आपका कंप्यूटर विस्फोट नहीं हुआ। –
क्या मैं आपको इस प्रश्न के अब प्रसिद्ध उत्तर में देख सकता हूं: http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope – Benj
युप, [क्रॉसिंग धाराएं] (http://en.wikipedia.org/wiki/Proton_pack#Crossing_the_Streams) फिर से। –