Lỗi lớp vector trong C++?

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

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ì?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?