Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con array de Clase String.

Estas en el tema de Duda con array de Clase String. en el foro de C/C++ en Foros del Web. Buenas, vengo a molestar con un problema que vengo teniendo, y la verdad no le encuentro lógica como para resolverlo. Estoy usando la clase std::string, ...
  #1 (permalink)  
Antiguo 13/11/2011, 02:12
Avatar de sbcl  
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 5
Duda con array de Clase String.

Buenas, vengo a molestar con un problema que vengo teniendo, y la verdad no le encuentro lógica como para resolverlo.

Estoy usando la clase std::string, para facilitar el uso de char*´s y ahorrarme el laburo de punteros.
yo tengo esto adentro del main.

Código c:
Ver original
  1. std::string * test = (std::string*) malloc(3 * sizeof(std::string));
  2. test[0] = "test0";
  3. test[1] = "test1";
  4. test[2] = "test2";

La cuestión, es que al querer escribir sobre test[2] El sistema crashea, como si hubiera un segfault.
Trate de hacer el malloc con mas memoria, sin éxito.
Si hago un malloc de 1 string, o 2 strings, funciona perfectamente, ahora con el tercero y posterior es el problema, y la verdad no tengo idea que pasa!
Creo que comprendo el uso del Malloc, probé también con Calloc pero pasa lo mismo.

Si alguno tiene idea de que puede estar pasando, le agradecería mucho la ayuda n.n

Saludos.
  #2 (permalink)  
Antiguo 13/11/2011, 02:31
Avatar de sbcl  
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Duda con array de Clase String.

Disculpen la molestia, ya encontre la solución.
En vez de usar malloc, use un array de new (std::string test = new std::string[n])

Igual, si alguno me puede sacar la duda de en que estoy fallando en usar malloc, se lo agradeceria mucho, por que me quedo con la duda.
  #3 (permalink)  
Antiguo 13/11/2011, 08:33
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Duda con array de Clase String.

En C++ el malloc casi no es utilizado mas. Una de las razones es porque no llama al constructor de la base. En cambio, se utiliza new que es mas inteligente.
  #4 (permalink)  
Antiguo 13/11/2011, 11:06
Avatar de sbcl  
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Duda con array de Clase String.

Muchas gracias Sam, voy a acostumbrarme a usar el New.
Tema resuelto n.n

Etiquetas: clase, funcion, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:14.