Punteros y arrays

Iniciado por cazagavilan, 14 Abril 2012, 09:31 AM

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

cazagavilan

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.

satu

Hola

Código (cpp) [Seleccionar]

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


Saludos
Breakbeat como forma de vida

cazagavilan

Me puedes explicar un poco lo de (valor -1).

Gracias!

satu

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
Breakbeat como forma de vida

cazagavilan