필링 : 여기C++, 구조체 벡터 내가 구조체 벡터 채우는 문제가있어
는 구조체입니다 :
struct indx{
int inK;
char* surn;
indx(int k, char* s) : inK(k), surn(s) {}
indx(){}
indx(indx *ind) : inK((*ind).inK), surn((*ind).surn){}
};
std::vector <indx> indexvec;
그리고 여기에 충전 기능입니다 :
이void Menu::sortIndex(){
//Preparacion del fichero indices
for (int i = 0; i < ag.getArrSize(); i++){
indexvec.emplace_back(new indx(i, ag.getPersona(i).getSurname()));
}
//Ordenacion del fichero indices
std::sort(indexvec.begin(), indexvec.end(), menor_surn());
}
문제는 indexvec[0].surn
의 벡터를 채우는 경우 indexvec[1].surn
과 같습니다. 나는 ag.getPersona(0).getSurename
과 ag.getPersona(1).getSurename
이 동일하지 않다고 확인했다.
[MCVE]를 제공해주세요. –
또한'surn' char 포인터를 복사하는 것이 잘못되었습니다. 오히려'char *'보다는'std :: string' 데이터 타입을 사용하십시오. –
메모리 누수가 발생하지 않는 것 같습니다. – MikeCAT