Tại sao trong 1 class có dữ liệu thành viên sử dụng kiểu char* thì khi dùng lớp vector nhập vào xuất ra lại bị lỗi như thế này. Tôi sửa lại char hoten[25] thì bình thường
Lỗi lớp vector trong C++?
Vậy thì phải coi lại việc nhập dữ liệu cho char* của bạn (Có quên cấp phát bộ nhớ không?).
Đâu phải cứ thích là đổi từ char[] sang char*.
Tốt nhất là post code của class KhachHang của bạn lên cho mọi người xem.
#include<iostream>
#include<vector>
using namespace std;
class Test{
private:
char* ten;
public:
Test();
~Test();
void Nhap();
void In();
};
Test::Test(){
ten=new char[25];
ten[0]='\0';
}
Test::~Test(){
delete []ten;
}
void Test::Nhap(){
cout<<"Nhap ten: ";
cin.getline(ten,25);
}
void Test::In(){
cout<<ten;
}
main(){
vector<Test> ds;
int i=0;
char k;
do{
Test t;
cout<<"Nhap du lieu thu "<<++i<<"\n\n";
cin.sync();
t.Nhap();
ds.push_back(t);
cout<<"\n\nBan muon nhap tiep khong? (c/k): ";
cin>>k;
}while (k=='c');
for(int i=0;i<ds.size();i++){
ds[i].In();
}
system("pause");
}
Lấy cái này làm ví dụ nè bạn.
Test::Test(){
ten=new char[25];
ten[0]='\0';
}
Cấp phát bộ nhớ xong gán kí tự kết thúc xâu cho vị trí đầu tiên à?
Thế thì khi in xâu nó sẽ in ra cái gì?