Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Fallo en funcion. Donde se encuentra el error?

Estas en el tema de Fallo en funcion. Donde se encuentra el error? en el foro de C/C++ en Foros del Web. Buenas chicos y chicas! Soy nuevo en este foro. En primer lugar HOOOLA a todos :) Bueno, y ya voy al problema. Se trata de ...
  #1 (permalink)  
Antiguo 07/03/2012, 14:16
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Fallo en funcion. Donde se encuentra el error?

Buenas chicos y chicas!

Soy nuevo en este foro. En primer lugar HOOOLA a todos :)

Bueno, y ya voy al problema.
Se trata de una simple funcion que lee una cierta cantidad de numeros y los almacena en un vector de tamaño "TAM". El problema es que si ejecuto esta funcion, solamente me guarda un maximo de 9 numeros, aunque le asigne a TAM un valor mayor de 9.

Este es codigo:

int LeerNumeros()
{
int TAM=0, numeros[TAM], i;

cout << "\nCuantos numeros quieres introducir? ";
cin >> TAM;

for(i=0; i<TAM; i++)
{
cout << "\nIntroduzca un numero: ";
cin >> numeros[i];
}
}

Que hago mal?
Soy nuevo en esto, y me estoy volviendo loco porque supongo que es algo muy simple en lo que estoy fallando, pero no lo veo :(

Os agradeceria mucho vuestra ayuda.
Un saludo!
  #2 (permalink)  
Antiguo 07/03/2012, 14:30
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Fallo en funcion. Donde se encuentra el error?

hola! nose c++ pero creo que el error esta en:
int TAM=0, numeros[TAM], i;

declaras un arreglo con TAM = 0 y luego lo redefinis, osea le cambias el tamaño. Los arreglos son estaticos no los podes redefinir, para eso tenes que usar punteros

Crea el arreglo despues de darle un valor a TAM

Saludos
  #3 (permalink)  
Antiguo 07/03/2012, 14:42
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Fallo en funcion. Donde se encuentra el error?

Gracias por responder!

Bueno, lo de TAM=0 lo hice aparte. Antes de hacer eso me daba el mismo fallo. Es decir, usando TAM unicamente, tambien me guarda solamente 9 numeros.

Pero no tengo que igualar TAM a 0 cada vez que uso la funcion de nuevo? La funcion se incluye en un programa principal que muestra un menu. Una de las opciones del menu es reintroducir los numeros que se guardan posteriormente en el vector.
  #4 (permalink)  
Antiguo 07/03/2012, 17:03
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Fallo en funcion. Donde se encuentra el error?

Lo que decia es q hagas esto:

Código C:
Ver original
  1. int LeerNumeros()
  2. {
  3. int TAM=0, i;
  4.  
  5. cout << "\nCuantos numeros quieres introducir? ";
  6. cin >> TAM;
  7.  
  8. int numeros[TAM]; // declaro el arreglo despues de asignarle un valor a TAM
  9.  
  10. for(i=0; i<TAM; i++)
  11. {
  12. cout << "\nIntroduzca un numero: ";
  13. cin >> numeros[i];
  14. }
  15. }

Iniciar TAM igual a 0 o no en este caso no trae problema

Saludos
  #5 (permalink)  
Antiguo 07/03/2012, 17:22
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Fallo en funcion. Donde se encuentra el error?

Ok, gracias. Lo probare en breves.

Slds!

Etiquetas: encuentra, fallo, funcion, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.