मैं सी ++ सीख रहा हूं और वर्तमान में मैं स्ट्रिंग्स और पॉइंटर्स के साथ काम कर रहा हूं।सी ++ तार और पॉइंटर्स
मैं एक व्यायाम किताब अनुसरण कर रहे सवालों मेरे द्वारा बनाए गए में से एक के लिए निम्नलिखित:
#include <iostream>
#include <string>
using namespace std;
int main(void){
string * firstName=nullptr;
string * lastName=nullptr;
string * displayName=nullptr;
cout << "Enter your first name: " << endl;
getline(cin,*firstName);
cout << "Enter your last name: " << endl;
getline(cin,*lastName);
displayName=new string;
*displayName= *lastName + ", " + *firstName;
cout << "Here's the information in a single string: " << displayName;
cin.get();
return 0;
}
एक बोली का उपयोग करने संकेत के और अधिक मैं इसे एक साथ मिश्रण करने तार और साथ की कोशिश की है में इस कारण से समाधान को और अधिक जटिल बना दिया है। जब मैं इसे चलाता हूं तो मुझे "अनचाहे अपवाद: प्रवेश उल्लंघन स्थान xxxxxxxxx" मिलता है।
क्या कोई अब भी चार सरणी के बजाय पॉइंटर्स और तारों का उपयोग करके इसका समाधान सुझा सकता है (जिसे मैंने पहले ही पता लगाया है कि कैसे करना है)?
आप तार का आवंटन नहीं कर रहे हैं, और फिर आप एक अशक्त सूचक को 'getline()' समारोह ... बस 'स्ट्रिंग * एक्स = nullptr के सभी बदलने के पास; ' 'स्ट्रिंग x;' या 'डिस्प्लेनाम' के साथ आपके द्वारा किए गए तारों को आवंटित करने से पहले 'getline() ' – Yaniro
पर जाने से पहले यदि आप" सी ++ सीखना "शुरू कर रहे हैं, तो आपको कच्चे पॉइंटर्स के पास कहीं भी नहीं जाना चाहिए। वे सी ++ का एक कठिन, उन्नत, विशिष्ट हिस्सा हैं जिन्हें आपको "सामान्य" प्रोग्रामिंग गतिविधियों की आवश्यकता नहीं है। –
यह [वीडियो स्निपेट] (http://www.youtube.com/watch?v=i49_SNt4yfk) जब मैं पॉइंटर्स के बारे में उलझन में था तो हमेशा बहुत प्रेरणादायक था ;-) –