Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Kali94 en 28 Julio 2016, 00:26 am



Título: Duda con cadenas y punteros
Publicado por: Kali94 en 28 Julio 2016, 00:26 am
Buenas, tengo una duda, quiero hacer esto:

char *ptr[10] = {"auto blanco", "avión grande", "pan dulce", "disco malo", "helicoptero negro"," comida buena", "león grande", "mono azul", “árbol grande", "mar profundo"};

pero que sea de forma manual, osea que el usuario ponga las cadenas, no que ya estén listas, he intentado  y no sé como hacerlo, lo que hice fue esto así en modo prueba con solo 3 ingresos  de cadenas:

#include <iostream>
using namespace std;
int main()
{
   char *ptr[10];
   cout << "Escriba la primera cadena" << endl;
   cin.getline(ptr[0],25);
   cout << "Escriba la segunda cadena" << endl;
   cin.getline(ptr[1],25);
   cout << "Escriba la tercera cadena" << endl;
   cin.getline(ptr[2],25);
}

Sale error al intentar agregar la tercera cadena, no sé porque no deja hacerlo manualmente pero al hacerlo como puse al principio ya con las cadenas listas todo funciona bien, esa sería mi duda.


Título: Re: Duda
Publicado por: AlbertoBSD en 28 Julio 2016, 00:45 am
Varios detalles:
El programa no sabe "apriori" cuanto espacio va a necesitar cada cadena.

Un apuntador debe de apuntar a una sección valida de memoria. Actualmente tus apuntadores no apuntan a ningun lado.

De lo anterior es la mitad solo la mitad es cierto. Tus apuntadores no esten inicializados y tienen "basura" de la pila... con lo cual se me hace increible que llegaras al tercer apuntador.

En fin son muchad cosas mas, Otra es el titulo de este tema...

Mientras te dejo mas consejos en video

mG8_nY3Yzg4

Saludos


Título: Re: Duda
Publicado por: engel lex en 28 Julio 2016, 01:18 am
Hola!

Modifica el titulo! el mismo debe ser desciptivo al problema