Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/01/2012, 17:22
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 1 mes
Puntos: 228
Respuesta: error con array

Para empezar, asi estas definiendo un doble puntero

char *nombres[]={};

Puntero o doble puntero, solo ocupa 32 bits (o 64) lo suficiente para guardar la direccion de memoria a donde apunta. La memoria en asi la tienes que reservar de otra forma. Hay dos metodos. Usando memoria statica o usando memoria dinamica.

Para memoria estatica simplementes defines asi tu variable:

char nombres[100][100];

Eso puede ser visto como 100 cadenas de 100 caracteres.

Para usar memoria dinamica tienes que usar el new...te recomiendo empezar con el otro metodo antes.


Luego cuando haces esta asignacion nombres[n]=nombre; solo estas asinando un puntero, asi que todos los nombres apuntan al mismo lugar, asi que en cada iteracion estarias pisando todos los nombres.

Yo eliminaria esa varianle temporaria y pasaria al cin directamente tu variable:

cout << "Nombre: ";cin >> nombres[n];

y para que sepas, si quieres copiar una cadena de caracteres a otras tienes que la funcion strcpy.