Dev - C++ - Problema funciones en C

 
Vista:

Problema funciones en C

Publicado por Programador Noob (1 intervención) el 21/09/2019 14:22:34
Hola gente. Tengo un programa sencillo para inicarme con funciones. El problema es, que en C no me funciona y en C++ (cambiando los printf por cout y scanf por cin) si funciona. El error cuando debugeo es "program received signal sigsegv segmentation fault".

El programa es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* C */
/* Programa que tiene una funcion que modifica una variable numerica pasada por parametro.
La funcion debe pedir un numero al usuario y asignarselo a la variable*/
 
/* Bibliotecas */
#include <stdio.h>
#include <stdlib.h>
 
/* Funciones a utilizar */
void modificar_variable(int *variable);
 
/* Programa Principal */
int main (void)
{
    int numero_a_cambiar=3;
    printf("El numero a cambiar es %d\n",numero_a_cambiar);
    modificar_variable(&numero_a_cambiar);
    printf("El numero cambiado es %d",numero_a_cambiar);
 
	return 0;
}
 
/* Funciones */
void modificar_variable(int *variable){
    int numero;
    printf("Introduzca el valor que desee que tenga la variable: ");
    scanf("%d",numero);
    *variable=numero;
}


la cosa es que creo que el problema esta en el scanf, porque si escriblo lo siguiente funciona:


1
2
3
4
5
6
7
8
/* Funciones */
void modificar_variable(int *variable){
    int numero;
    printf("Introduzca el valor que desee que tenga la variable: ");
    numero=35;
//    scanf("%d",numero);
    *variable=numero;
}

Si escondo el scanf con comentarios y le pongo un valor a numero, el programa y la funcion van bien.
¿Alguna idea de que esta fallando?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema funciones en C

Publicado por Alfil (1444 intervenciones) el 21/09/2019 21:19:54
En la línea 27 te falta el & del scanf

1
scanf( "%d", &numero);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar