Когда я добавляю объекты в вектор «clientVect», я получаю ошибку сегментации. Можете ли вы помочь мне определить проблему?Ошибка сегментации при добавлении объекта в вектор
Это класс:
#include "ClientDB.h"
ClientDB::ClientDB(){
}
ClientDB::~ClientDB(){
}
void ClientDB::addClient(QString name,QString fname,int id,QString bdate,int cellnb)
{
Client c= Client(name,fname,id,bdate,cellnb);
this->clientVect.push_back(c);
}
vector <vector<QString*> > ClientDB::showRenters(){
using namespace std;
int i;
int j=0;
QString id,cellnb,rentedcar;
vector <vector<QString*> > list;
for(i=0;i<clientVect.size();i++){
if (clientVect[i].renter==true){
(list[j]).push_back(&clientVect[i].name);
(list[j]).push_back(&clientVect[i].fname);
id=QString::number(clientVect[i].id);
(list[j]).push_back(&id);
(list[j]).push_back(&clientVect[i].bdate);
cellnb=QString::number(clientVect[i].cellnb);
(list[j]).push_back(&cellnb);
rentedcar=QString::number(clientVect[i].rentedCar);
(list[j]).push_back(&rentedcar);
j++;
}
}
return list;
}
vector <vector<QString*> > ClientDB::showAll(){
using namespace std;
int i;
QString id,cellnb,rentedcar;
vector <vector<QString*> > list;
for(i=0;i<clientVect.size();i++){
(list[i]).push_back(&clientVect[i].name);
(list[i]).push_back(&clientVect[i].fname);
id=QString::number(clientVect[i].id);
(list[i]).push_back(&id);
(list[i]).push_back(&clientVect[i].bdate);
cellnb=QString::number(clientVect[i].cellnb);
(list[i]).push_back(&cellnb);
rentedcar=QString::number(clientVect[i].rentedCar);
(list[i]).push_back(&rentedcar);
}
return list;
}
Это заголовок:
#ifndef CLIENTDB_H
#define CLIENTDB_H
#include "Client.h"
#include <vector>
#include <QString>
using namespace std;
class ClientDB
{
public:
vector<Client> clientVect;
void addClient(QString,QString,int,QString,int);
vector <vector<QString*> >showRenters();
vector <vector<QString*> >showAll();
ClientDB();
~ClientDB();
};
#endif // CLIENTDB_H
Проблема, конечно, в ClientDB::addClient
, в частности, в clientVect.push_back(....)
, но я не могу понять причину.
Попробуйте подключить отладчик ... вы узнаете тонну! :) – Barett