La pregunta es, ¿cual de las 2 debería de hacer?
¿En este caso sería indiferente verdad?, puesto que vector<victima> _victimas es fijo, cuando lo paso como parametro reserva memoria en el metodo, y si hago cambios fuera del método no afectan al argumento que he pasado ¿no?, distinto de si fuera un puntero.
Cuando acaba un método, sus parametros se borran de memoria ¿no?. En este caso, ¿que hago, igualar punteros contenidos o que?.
Ese código , asignaría en _lista otro puntero en la heap, pero que ocurriría con el que ya había.
Si en cambio igualo _lista = &lista; al perderse &lista al salir de la funcion que ocurriría con _lista despues?.
Saludos, estoy algo liado.
¿En este caso sería indiferente verdad?, puesto que vector<victima> _victimas es fijo, cuando lo paso como parametro reserva memoria en el metodo, y si hago cambios fuera del método no afectan al argumento que he pasado ¿no?, distinto de si fuera un puntero.
Código (cpp) [Seleccionar]
lista_victimas::lista_victimas(vector<victima> _victimas)
{
victimas = _victimas;
//copy(_victimas.begin(), _victimas.end(), back_inserter(victimas));
}
Cuando acaba un método, sus parametros se borran de memoria ¿no?. En este caso, ¿que hago, igualar punteros contenidos o que?.
Código (cpp) [Seleccionar]
void funcion(lista_victimas *_lista)
lista_victimas lista;
//añado miembros.
mvictimas->lock();
_lista = new lista_victimas(lista.obtener_victimas());
mvictimas->unlock();
Ese código , asignaría en _lista otro puntero en la heap, pero que ocurriría con el que ya había.
Si en cambio igualo _lista = &lista; al perderse &lista al salir de la funcion que ocurriría con _lista despues?.
Saludos, estoy algo liado.