Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: JPpapa en 6 Julio 2012, 16:08 pm



Título: Variables numéricas C++ PROBLEMA RARO!
Publicado por: JPpapa en 6 Julio 2012, 16:08 pm
Hola que tal?
Soy nuevo en esto y estoy aprendiendo C++ pero no puedo avanzar por un problema muy básico y raro porque no lo encontré mucho por google.
Cuando ingreso el valor de una variable el programa se cae... Por ejemplo:

Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5.  
  6.         int numero = 2;
  7. main()
  8. {
  9.     printf ("%d\n", numero);
  10.     printf ("Asigne un nuevo valor\n");
  11.     scanf ("%d", numero);
  12.     getchar();
  13. }
  14.  

Al declarar el valor al principio no se cae, pero se cae cuando quiero darle un nuevo valor... no sé que puede ser. Tengo Vista (?) uso el Dev C++ pero también probé con Visual C++ y me pasó lo mismo.


Muchas gracias!


Título: Re: Variables numéricas C++ PROBLEMA RARO!
Publicado por: DickGumshoe en 6 Julio 2012, 16:25 pm
Hola. Bienvenido al foro.

Antes que nada, decir que no estás aprendiendo C++, sino C.

Después, te sobran librerías. La librería iostream es de C++, por lo que no debes utilizarla (de hecho, solo la incluyes, pero no haces nada con ella).

"stdlib.h" y "conio.h" también puedes borrarlas del programa.

Tu problema está en que en scanf(); pones "numero", y deberías poner "&numero". Así:

Código
  1. #include <stdio.h>
  2.  
  3.  
  4. int main()
  5. {
  6.     int numero = 2;
  7.     printf ("%d\n", numero);
  8.     printf ("Asigne un nuevo valor\n");
  9.     scanf ("%d", &numero);
  10.     getchar();
  11.     return 0;
  12. }
  13.  
  14.  

Saludos.


Título: Re: Variables numéricas C++ PROBLEMA RARO!
Publicado por: 0xDani en 6 Julio 2012, 22:01 pm
Estaria bien que leyeras la diferencia entre pasar variables por valor y por referencia, para entender lo que estas haciendo y no poner &numero solo porque funciona. A la larga te sera util.

Saludos.


Título: Re: Variables numéricas C++ PROBLEMA RARO!
Publicado por: JPpapa en 7 Julio 2012, 00:06 am
muchas gracias, lo pude arreglar. Igual no entiendo por qué hay que poner &. Alguien me explica?



Título: Re: Variables numéricas C++ PROBLEMA RARO!
Publicado por: DickGumshoe en 7 Julio 2012, 00:10 am
Lo entenderás mejor cuando llegues, como ha dicho daniyo, a estudiar el paso por parámetros y por referencia. Para que te vayas haciendo una idea, te explico un poco:

Cuando un parámetro es pasado por valor, es una copia del mismo. Por lo tanto, no se modifica el original.

Como lo que quieres es modificar esa variable, haces el paso de parámetros por referencia, en el que modificas la variable original, y por tanto, se guardan los cambios en la misma.

Para diferenciar una de otras, en el paso por referencia se le pone "&" delante de la variable y en el paso por valor no.

Saludos.