Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/01/2008, 07:02
Avatar de _Lucifer_
_Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: pasar vector (STL) por referencia

En realidad ambas formas "podrían" estar mal así como las tienes planteadas, te explico.

En la primera (que tiene un error):
Código:
void getAllData( std::vector<unsigned char>* char_array )
{
      char_array->reserve(10);
      (*char_array)[0] = 1;   //Esto no funciona, da error al compilar
      char_array->push_back( 1 );      //Esto funciona
      unsigned char temp = char_array[0];   //Error de compilación.
}
Acuerdate que estás pasando un puntero y debes desreferenciar.

Lo que te digo que podría estar mal en ambos es el hecho de que no sabes que tamaño tiene el erreglo. Debes usar el método resize para cambiar el tamaño, reserve solo "reserva" la memoria, mas no "habilita" las posiciones.

En lo personal considero mejor la segunda opción.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: