C/Visual C - fallo de segmentacion

 
Vista:

fallo de segmentacion

Publicado por Gustavo (3 intervenciones) el 04/11/2010 18:13:58
Hola, es la primera vez que me ocurre un fallo de segmentacion y no se a q puede ser debido, os agradezco vuestra ayuda. os dejo aqui el codigo, un saludo!

#include <stdio.h>

char clave[2];
char abecedario[]="abcdefghijklmnñopqrstuvwxyz0123456789";

void combinar();

int main(int argc,char *argv[])
{
//printf("fallo?");
printf("Este es un diccionario para combinaciones de 2 caracteres");
combinar();
//printf("fallo????\n");
}

void combinar()
{
long int a,b=0;//inicializamos las variables necesarias para crear todas las claves

do{
/****Bucle que maneja el primer caracter de clave****/
b=0;
clave[0]=abecedario[a++];
do{
/****Bucle que maneja el segundo caracter de clave****/
clave[1]=abecedario[b++];
printf("%c%c",clave[0],clave[1]);
}while (abecedario[b]);
}while(abecedario[a]);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:fallo de segmentacion

Publicado por Capitan Kirk (97 intervenciones) el 05/11/2010 08:21:32
El fallo de segmentación suele producirse porque estás intentando acceder a una posición de memoria no válida.

En la función combinar(), tal como has puesto la declaración de a y b, se inicializa solamente la variable b. La variable a comenzará teniendo cualquier valor.

Si quieres inicializar las dos, deberías poner

long int a=0, b=0;

(debes tener en cuenta que, en C, las variables no necesariamente se inicializan a 0 en su declaración).

Esto es lo único que veo así, a primera vista. Por si el fallo se reproduce, convendrá que se vayan mostrando también los valores de a y b. También es conveniente que indiques el sistema operativo y el compilador (modelo y versión) que estás utilizando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fallo de segmentacion

Publicado por Gustavo (3 intervenciones) el 05/11/2010 21:17:09
Muchas gracias por la respuesta, si el fallo era ese q solo inicializaba una variable...
El sistema operativo es ubuntu 10.4 y l compilador gcc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar