Hola a todos !
Alguien podria ojear este codigo y decirme donde esta la violacion de segmento??
/*DICCIONARIO*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int desde;
int hasta;
char nombre[25]; He suprimido esta variable que estaba duplicada, pero sigue el problema..
void calcula (void);
int main()
{
int ndopcion;
printf("\n\n\t\t\t\tMENU\n\n");
printf("\n\t\t1\tNumeroS\n\t\t2\tMayusculaS\n\t\t3\tMinusculaS\n\t\t4\tVaciO\n\t\t5\tVaciO\n");
printf ("\nIntroduza numero de opcion: ");
scanf (" %d" ,&ndopcion);
switch (ndopcion)
{
case 1:
{
desde=48;
hasta=57;
calcula();
}
break;
case 2:
{
desde=65;
hasta=90;
calcula();
}
break;
case 3:
{
desde=97;
hasta=122;
calcula();
}
break;
case 4:
{
}
break;
case 5:
{
}
break;
}
}
void calcula (void)
{
int a, b, c, d, e, f, g, h;
char clv[8];
char nombre[20];
printf("\nIntroduzca nombre del archivo de salida: ");
gets(nombre);
FILE *hoja1;
hoja1 = fopen (nombre , "wt");
if (hoja1 == NULL)
printf ("No se ha podido crear el fichero");
else
for (a=desde; a<= hasta; a++)
{
clv[0] = a;
for (b=desde; b <= hasta; b++)
{
clv[1] = b;
for (c=desde; c<= hasta; c++)
{
clv[2] = c;
for (d=desde; d<= 90; d++)
{
clv[3] = d;
for (e=desde; e<=hasta; e++)
{
clv[4] = e;
for (f=desde; f<= hasta; f++)
{
clv[5] = f;
for (g=desde; g<=hasta; g++)
{
clv[6] = g;
for(h=desde; h <= hasta; h++)
{
clv[7] = h;
fwrite (clv, sizeof(clv), 1, hoja1);
}
}
}
}
}
}
}
}
fclose(hoja1);
printf("\n%s", clv);
printf("\nArchivo cerrado\n\n ");
}