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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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

Desconectado Desconectado

Mensajes: 74



Ver Perfil
El programa deja de funcionar
« en: 11 Diciembre 2016, 20:07 pm »

Estaba tratando de hacer una calculadora sencilla, pero por alguna razon el programa deja de funciones.
¿Alguien tiene alguna idea de porque?



MOD:Imagen adaptada a lo permitido


« Última modificación: 11 Diciembre 2016, 20:54 pm por MCKSys Argentina » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: El programa deja de funcionar
« Respuesta #1 en: 11 Diciembre 2016, 20:12 pm »

Código
  1. scanf("%d", cantidadnumerossumar);
Los argumentos de scanf son direcciones de memoria donde vas a almacenar los datos.

Por tanto, para pasarle las direcciones, usa el operador "&":
Código
  1. scanf("%d", &cantidadnumerossumar);

El error es que interpretaba los datos que tenía el int cantidadnumerossimar como si fuera una dirección, y trató de escribir en ella, lo que generó el error.


En línea

Naimaderis

Desconectado Desconectado

Mensajes: 74



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #2 en: 11 Diciembre 2016, 20:15 pm »

Muchas gracias!!!!, sabia sobre eso, pero no me di cuenta que era ese el error.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #3 en: 11 Diciembre 2016, 20:50 pm »

no se que compilador usas... pero te está dejando pasar muchos errores, las funciones no tienen tipo (main debe ser siempre int), sumar creo que debería ser void según lo que quieras hacer... te está permitiendo compilar sin prototipos y llamar a la función...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Naimaderis

Desconectado Desconectado

Mensajes: 74



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #4 en: 12 Diciembre 2016, 05:08 am »

Utilizo code::blocks. Ahora que lo dices, el programa compila de maravilla, en el libro que estoy usando, aun no he llegado a la parte de tipos de funciones. Pero he visto que ponen main(void) o cosas asi.
En php, siempre ponia funcion(y aca adentro los parametros), estoy ansioso de ver como funciona aca.


MOD:Imagen adaptada a lo permitido (Por 2da vez)
« Última modificación: 12 Diciembre 2016, 11:04 am por MCKSys Argentina » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #5 en: 12 Diciembre 2016, 05:26 am »

por que empiezas contador en 1 en la linea 24? al igual que ahí con ese +1 se te va a desbordar la variable

al igual que no entiendo abajo la razón del operador ternario (y no se si entiendes como funciona, porque a mucha gente se le complica)  y tambien un j empezando en


Citar
no se que compilador usas...
Citar
Utilizo code::blocks.

code::blocks es el ide, no el compilador... a mi ni por accidente me deja compilar eso XD

« Última modificación: 12 Diciembre 2016, 05:35 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: El programa deja de funcionar
« Respuesta #6 en: 12 Diciembre 2016, 11:09 am »

por que empiezas contador en 1 en la linea 24? al igual que ahí con ese +1 se te va a desbordar la variable

al igual que no entiendo abajo la razón del operador ternario (y no se si entiendes como funciona, porque a mucha gente se le complica)  y tambien un j empezando en


code::blocks es el ide, no el compilador... a mi ni por accidente me deja compilar eso XD



Este hermoso código compila en algunos compiladores de C (ahora estoy usando GCC):
Código
  1. main(){
  2. func(5);
  3. }
  4.  
  5. func(n){
  6. printf("%i", n);
  7. }

Se toma el uso de las funciones como una "declaracióm implícita".
Eso sí, a la hora de linkear, tira error si no encuentra las funciones.

Pero como dice engel, Naimaderis, las funciones tienen un retorno siempre (el del main es int), y antes de usar una función, el compilador debe conocerla:

Código
  1. #include <stdio.h>
  2.  
  3. void func(int);
  4.  
  5. int main(){
  6. func(5);
  7. }
  8.  
  9. void func(int n){
  10. printf("%i", n);
  11. }
O
Código
  1. #include <stdio.h>
  2.  
  3. void func(int n){
  4. printf("%i", n);
  5. }
  6.  
  7. int main(){
  8. func(5);
  9. }
En línea

Naimaderis

Desconectado Desconectado

Mensajes: 74



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #7 en: 12 Diciembre 2016, 22:46 pm »

Ivan, estuve viendo tu blog, cuando avance un poco mas, creo que me va a servir bastante

por que empiezas contador en 1 en la linea 24? al igual que ahí con ese +1 se te va a desbordar la variable

No entiendo muy bien el concepto de variable desbordada, me suena a que se pasa de la capacidad, ¿Podrias explicarlo? Gracias

Podria cambiar la linea 24, pero entonces tengo que cambiar la linea 33 y 36. No se si sera mejor asi entonces:

Código
  1.    for (contador = 0; contador < cantidadnumerossumar; contador ++ )
  2.  
  3.    for (j = 0; j < cantidadnumerossumar; j++ ) {
  4.  
  5.            (j < cantidadnumerossumar - 1) ? printf("%d + ",numerosasumar[j]) : printf(" %d = %d",numerosasumar[j], total);
  6.  
  7.  

Igualmente, estoy agregando un -1 abajo

al igual que no entiendo abajo la razón del operador ternario (y no se si entiendes como funciona, porque a mucha gente se le complica)  y tambien un j empezando en

Segun tengo entendido es como un if con else, no?. Me refiero:

Condicion ? Si se cumple pasa esto : Si no, pasa esto



code::blocks es el ide, no el compilador... a mi ni por accidente me deja compilar eso XD


Perdon, utilizo gnu gcc compiler. Espero adaptar bien la imagen esta vez:



« Última modificación: 12 Diciembre 2016, 22:51 pm por Naimaderis » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #8 en: 12 Diciembre 2016, 23:04 pm »

los vectores empiezan en 0 siempre


si declaran por ejemplo int a[4]

Código:
a
|_|_|_|_|
 0 1 2 3

a[1]
|_|X|_|_|
 0 1 2 3

a[4]
|_|_|_|_|???
 0 1 2 3

si haces a[4] el intentará acceder a la memoria ram en posición a + 4*size(int) y normalmente retorna "segment fault"

y si el operador ternario lo comprendes bien...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Naimaderis

Desconectado Desconectado

Mensajes: 74



Ver Perfil
Re: El programa deja de funcionar
« Respuesta #9 en: 17 Diciembre 2016, 01:10 am »

no se que compilador usas... pero te está dejando pasar muchos errores, las funciones no tienen tipo (main debe ser siempre int), sumar creo que debería ser void según lo que quieras hacer... te está permitiendo compilar sin prototipos y llamar a la función...
Ya llegue al capitulo de funciones y prototipo, y me encontre con algo interesante:

¿A esto te referias? ¿Deberia actualizar el compilador? Es raro que sea vieja, lo descargue hace poco

MOD:Imagen adaptada a lo permitido (Por 3ra vez). Lee las reglas. El tamaño máximo es de 800x600.
« Última modificación: 17 Diciembre 2016, 01:34 am por MCKSys Argentina » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hoy deja de funcionar el 11818
Noticias
wolfbcn 0 1,457 Último mensaje 1 Enero 2012, 18:36 pm
por wolfbcn
[Solucionado] Programa deja de funcionar
Programación C/C++
oscarX3M 2 2,255 Último mensaje 5 Junio 2014, 01:46 am
por oscarX3M
Teclado deja de funcionar
Hardware
alexconan 3 2,837 Último mensaje 30 Junio 2014, 19:53 pm
por Aprendiz-Oscuro
¿Por qué mi programa deja de funcionar? « 1 2 »
Programación C/C++
LML-32 10 5,529 Último mensaje 26 Mayo 2016, 07:48 am
por LML-32
Deja de funcionar, agregar y mostrar archivos con delimitadores C++
Programación C/C++
Abril7 1 1,922 Último mensaje 4 Septiembre 2017, 15:05 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines