I'm having problems printing an array in C ++. If I do what I indicate in the code below, you can access the data of each object in the array, therefore print:
void testGetVehiculos(){
string ci = "c11";
int cantVehiculos=2;
int pos = buscarSocio(ci); //devuelve la posición del socio con documento ci en un array global
vector<DtVehiculo*> vehiculos = socios[pos]->getVehiculos(ci, cantVehiculos);
DtVehiculo** vehiculos = vehiculos.data();//obtenerVehiculos(ci, cantVehiculos);
string marca = "";
cout << " \n";
cout << "Se encontraron: " << cantVehiculos << " vehiculos.\n";
cout << " \n";
cout << "Listado: \n";
for (int i = 0; i < cantVehiculos ; i++){
//DtVehiculo m = vehiculos[i];
// DtVehiculo* c = cons[i];
marca = vehiculos[i]->getMarca();
cout << " \n";
cout << "------------------ \n";
cout << "-> Número de vehiculo: " << i<< "\n";
cout << "-> Marca: " << marca << "\n";
cout << "------------------ \n";
}
cout << "-------FIN-----\n";
}
If I put in a separate function (which is what you are asked to do), when you reach the line:
marca = vehiculos[i]->getMarca();
I get Segmentation Fault. Here the complete code that gives problems:
DtVehiculo** obtenerVehiculos(string ci, int& maxVehiculos){
int pos = buscarSocio(ci); //devuelve la posición del socio con documento ci en un array global
vector<DtVehiculo*> vehiculos = socios[pos]->getVehiculos(ci, maxVehiculos);// obtiene la lista de Vehiculos de la clase Socio. Hasta acá parece funcionar todo bien
return vehiculos.data();
};
void testGetVehiculos()
{
string ci = "c11";
int cantVehiculos=2;
DtVehiculo** vehiculos = obtenerVehiculos(ci, cantVehiculos);
string marca = "";
cout << " \n";
cout << "Se encontraron: " << cantVehiculos << " vehiculos.\n";
cout << " \n";
cout << "Listado: \n";
for (int i = 0; i < cantVehiculos ; i++){
//DtVehiculo m = vehiculos[i];
// DtVehiculo* c = cons[i];
marca = vehiculos[i]->getMarca();
cout << " \n";
cout << "------------------ \n";
cout << "-> Número de vehiculo: " << i<< "\n";
cout << "-> Marca: " << marca << "\n";
cout << "------------------ \n";
}
cout << "-------FIN-----\n";
}
Thank you in advance.