Duda con cadenas y punteros

Iniciado por Kali94, 28 Julio 2016, 00:26 AM

0 Miembros y 1 Visitante están viendo este tema.

Kali94

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.

AlbertoBSD

#1
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

[youtube=640,360]https://www.youtube.com/watch?v=mG8_nY3Yzg4[/youtube]

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

engel lex

Hola!

Modifica el titulo! el mismo debe ser desciptivo al problema
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.