Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 14 Abril 2012, 09:31 AM

Título: Punteros y arrays
Publicado por: cazagavilan en 14 Abril 2012, 09:31 AM
Buenas!

Tengo este ejercicio en el que el usuario introuce cuantos numeros va a introducir...  luego pide los numeros y luego los muestra enorden inverso.
Código (cpp) [Seleccionar]
#include <iostream>
#include <new>
using namespace std;

int main()
{
int numero;
int valor;
int* puntero;
cout << "Cuantos numeros desea introducir? " << endl;
cin >> valor;
puntero = new (nothrow) int[valor];
if(puntero == 0)
cout << " Error... no se pudieron introducir los valores..." << endl;

else
{
cout << "Introduzca los numero de uno en uno.. ejemplo( 1 (enter)... 2(enter)...)" << endl;
for(numero= 0; numero < valor; numero++)
{
cout << "Introduzca el numero: " << endl;
    cin >> puntero[numero];
cout << endl;
}
for(int i = valor;  i > 0; i--)
{
cout << puntero[i] <<endl;
}


}
system("pause");
return 0;
}


Da error en el primer numero que introduce para invertir.

Muchas gracias.
Título: Re: Punteros y arrays
Publicado por: satu en 14 Abril 2012, 12:23 PM
Hola

Código (cpp) [Seleccionar]

for(int i = valor - 1 ;  i >= 0; i--)
{
cout << puntero[i] << endl;
}


Saludos
Título: Re: Punteros y arrays
Publicado por: cazagavilan en 14 Abril 2012, 12:44 PM
Me puedes explicar un poco lo de (valor -1).

Gracias!
Título: Re: Punteros y arrays
Publicado por: satu en 14 Abril 2012, 13:34 PM
Hola

Como ya sabrás, en C/C++ los arrays se recorren desde 0 hasta longitud-1, por lo tanto si creas el array de longitud 5, los valores los almacena en array[0], array[1], ... array[4], por eso tienes que recorrerlo desde valor-1, porque en array[5] no sabes qué habrá, es una zona de memoria que no has reservado.

Espero que lo hayas entendido

Saludos
Título: Re: Punteros y arrays
Publicado por: cazagavilan en 14 Abril 2012, 19:32 PM
Gracias!