Tôi đang học C++ và hiện tại tôi đang làm việc với chuỗi và con trỏ.Chuỗi và con trỏ C++
Tôi đang theo một cuốn sách tập thể dục và cho một trong những câu hỏi tôi đã tạo ra những điều sau đây:
#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;
}
Trong một nỗ lực để sử dụng nhiều của con trỏ tôi đã cố gắng để kết hợp nó cùng với chuỗi và đã làm cho giải pháp phức tạp hơn vì lý do này. Khi tôi chạy điều này, tôi nhận được một "Ngoại lệ không đúng: Truy cập vi phạm vị trí đọc xxxxxxxxx".
Ai đó có thể đề xuất giải pháp cho điều này bằng cách sử dụng con trỏ và chuỗi thay vì mảng char (mà tôi đã tìm ra cách thực hiện)?
Bạn không phân bổ chuỗi và sau đó bạn chuyển con trỏ rỗng tới hàm 'getline()' ... chỉ cần thay đổi tất cả 'chuỗi * x = nullptr; ' để 'string x;' hoặc phân bổ các chuỗi như bạn làm với 'displayName' trước khi bạn chuyển chúng đến' getline() ' – Yaniro
Nếu bạn mới bắt đầu" học C++ ", bạn không nên đi bất cứ đâu gần con trỏ thô. Chúng là một phần khó, tiên tiến, thích hợp của C++ mà bạn không cần cho hầu hết các hoạt động lập trình "bình thường". –
[Đoạn video] này (http://www.youtube.com/watch?v=i49_SNt4yfk) luôn rất truyền cảm hứng khi tôi bị nhầm lẫn về con trỏ ;-) –