El siguiente codigo me da el error Violacion de segmento y no se porque razon y ni que en linea se encuentra el error
#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;
}