elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema Funciones C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema Funciones C  (Leído 546 veces)
Abedul69

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema Funciones C
« en: 21 Septiembre 2019, 14:49 pm »

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:
/* 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:


/* 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?


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 904



Ver Perfil
Re: Problema Funciones C
« Respuesta #1 en: 21 Septiembre 2019, 15:05 pm »

La función <scanf()> tiene que recibir como segundo parámetro la dirección de memoria de la variable donde quieres guardar el número en este caso.
Corrección:
Código
  1. int numero;
  2. scanf("%d", &numero);
Otra forma de hacerlo para no crear la variable <numero> es guardarlo directamente en el parámetro <variable> así:
Código
  1. void modificar_variable(int *variable){
  2.    printf("Introduzca el valor que desee que tenga la variable: ");
  3.    scanf("%d", variable); // en este caso no se usa & porque lo estas pasando con un puntero
  4. }

PD: Para futuras consultas coloca tus códigos entre etiquetas de Código GeSHi para facilitar la lectura a los demás. Suerte :-X


« Última modificación: 21 Septiembre 2019, 16:38 pm por YreX-DwX » En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Abedul69

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema Funciones C
« Respuesta #2 en: 21 Septiembre 2019, 15:32 pm »

Madre miaaaa!!!! Pero si es un olvido que he tenido otras veces y lo he arreglado sin problemas!!!

Cuando estas ciego, estas ciego. Con lo obvio que se ahora que me lo dices.

Muchisimas gracias YreX-DwX!!! Te debo una!! =D  :D :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 21,667 Último mensaje 19 Mayo 2011, 23:39 pm
por Littlehorse
Problema con Funciones en C
Programación C/C++
;c1v!c 8 1,901 Último mensaje 17 Agosto 2011, 10:19 am
por satu
Problema con funciones
Programación C/C++
DickGumshoe 2 1,169 Último mensaje 22 Enero 2012, 11:48 am
por DickGumshoe
Problema de Funciones en C
Programación C/C++
Erner 4 1,154 Último mensaje 10 Mayo 2015, 15:49 pm
por DarK_FirefoX
Problema con funciones y while.
PHP
#Aitor 2 1,005 Último mensaje 12 Marzo 2016, 02:02 am
por #Aitor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines