Título: Error Violacion de segmento en programa en c Publicado por: nohelyma en 25 Junio 2014, 05:17 am Al compilar me da el error de violacion de segmento, aca esta el programa, no se porque es el error ni donde se encuentra
#include<stdio.h> #include<stdlib.h> struct vehiculo{ char nombre[35]; char modelo[20]; char placa[10]; int telefono; }; int sum=0; void agregar(struct vehiculo *dir){ printf("Ingrese el nombre del porpietario del vehiculo\n"); scanf("%s", dir[sum].nombre); printf("Ingrese el modelo del vehiculo\n"); scanf("%s", dir[sum].modelo); printf("Ingrese la placa del vehiculo\n"); scanf("%s", dir[sum].placa); printf("Ingrese el numero de telefono del propietario del vehiculo\n"); scanf("%d", &dir[sum].telefono); sum++; } int main(){ struct vehiculo directorio[4]; int op=0; while(op!=6){ printf("\t\t Directorio de Vehiculos de Meirda\n\n"); printf("1-Añadir una nueva persona al directorio\n"); printf("2-Añadir un nuevo vehiculo a persona existente en el directorio\n"); printf("3-Ver datos de un vehiculo por medio de la placa\n"); printf("4-Ver vehiculos de un mismo propietario\n"); printf("5-Ver todos los datos\n"); printf("6-Salir del sistema\n"); scanf("%d",&op); switch(op){ case 1: agregar(directorio); break; } } return 0; } Título: Re: Error Violacion de segmento en programa en c Publicado por: engel lex en 25 Junio 2014, 05:39 am cuando publiques código usa las etiquetas GeSHi (arriba de los emoticones a la derecha)
siempre que tengas un error de ese tipo usa el debugger y ejecuta paso a paso hasta donde está el error... a primera vista no veo el error Título: Re: Error Violacion de segmento en programa en c Publicado por: eferion en 25 Junio 2014, 08:30 am Al compilar no puede darte violación de segmento. Una violación de segmento se provoca cuando, mediante un puntero, intentas acceder a memoria no válida. Durante la compilación se escribe el programa... y salvo que el compilador tenga errores dudo que de errores de segmentación.
En tal caso el problema lo tienes durante la ejecución de tu programa... así a bote pronto si pulsas 5 veces la opción 1 empezarás a acceder a memoria que no te pertenece, luego no sería de extrañar que ahí esté el origen de tu problema. |