void changeString(const char* &s){
std::string str(s);
str.replace(0, 5, "Howdy");
s = str.c_str();
}
int main() {
const char *s = "Hello, world!";
changeString(s);
std::cout << s << "\n";
return 0;
}
जब मैं यह कोड चलाता हूं, तो यह प्रिंट करता है "हाउडी, दुनिया!" मुझे लगता है कि str
changeString
बाहर निकलने पर नष्ट हो जाता है। क्या मुझे std::string
आवंटित करने के तरीके से कुछ याद आ रहा है?सी ++ में स्ट्रिंग आवंटन: यह क्यों काम करता है?
मैं * अनुमान * यह * हुआ * काम करने के लिए। – MikeCAT
कभी-कभी अपरिभाषित व्यवहार काम पर प्रतीत होता है। हालांकि, आपको कभी काम करने की उम्मीद नहीं करनी चाहिए। –
खराब भाग्य। आप सही हैं कि यह गलत है। –