Hola , soy un poco noob en C y estoy programando un juego de poker por que de vez en cuando dejo de leer las lecciones y intento hacer algo por mi mismo pero al llegar a un bucle while justo despues de ejecutar la funcion inicio pone "Segmention Fault" y ya no tira.
Codigo:
#include <stdio.h>
#include <stdlib.h>
/*Variables para operaciones varias*/
char i;
char b;
char c;
/*Repite o finaliza el juego*/
char d;
/*Configuracion inicial init_var[1]=nombre de jugadores , init_var[2]=dinero disponible*/
unsigned int init_var[2];
char player_cards[4][5];
/*Lista de los nombres de las cartas*/
char card_name[52][30];
/*Variable para salir*/
void inicio(void);
int main(){
/*Asignacion del nombre de las cartas*/
card_name[1][30]="2 de picas";
card_name[2][30]="3 de picas";
card_name[3][30]="4 de picas";
card_name[4][30]="5 de picas";
card_name[5][30]="6 de picas";
card_name[6][30]="7 de picas";
card_name[7][30]="8 de picas";
card_name[8][30]="9 de picas";
card_name[9][30]="10 de picas";
card_name[10][30]="J de picas";
card_name[11][30]="Q de picas";
card_name[12][30]="K de picas";
card_name[13][30]="As de picas";
card_name[14][30]="2 de treboles";
card_name[15][30]="3 de treboles";
card_name[16][30]="4 de treboles";
card_name[17][30]="5 de treboles";
card_name[18][30]="6 de treboles";
card_name[19][30]="7 de treboles";
card_name[20][30]="8 de treboles";
card_name[21][30]="9 de treboles";
card_name[22][30]="10 de treboles";
card_name[23][30]="J de treboles";
card_name[24][30]="Q de treboles";
card_name[25][30]="K de treboles";
card_name[26][30]="As de treboles";
card_name[27][30]="2 de rombos";
card_name[28][30]="3 de rombos";
card_name[29][30]="4 de rombos";
card_name[30][30]="5 de rombos";
card_name[31][30]="6 de rombos";
card_name[32][30]="7 de rombos";
card_name[33][30]="8 de rombos";
card_name[34][30]="9 de rombos";
card_name[35][30]="10 de rombos";
card_name[36][30]="J de rombos";
card_name[37][30]="Q de rombos";
card_name[38][30]="K de rombos";
card_name[39][30]="As de rombos";
card_name[40][30]="2 de corazones";
card_name[41][30]="3 de corazones";
card_name[42][30]="4 de corazones";
card_name[43][30]="5 de corazones";
card_name[44][30]="6 de corazones";
card_name[45][30]="7 de corazones";
card_name[46][30]="8 de corazones";
card_name[47][30]="9 de corazones";
card_name[48][30]="10 de corazones";
card_name[49][30]="J de corazones";
card_name[50][30]="Q de corazones";
card_name[51][30]="K de corazones";
card_name[52][30]="As de corazones";
/*Asignacion del nombre de las cartas (Fin)*/
printf("------------Poklinux alpha v0.1 30/5/2010------------\n");
/*funcion para configurar los parametros de el inicio de la partida*/
inicio();
/*empieza la partida*/
d=0;
while(d==0){
<======Cuando se ejecuta este bucle pasa lo del segmention fault for(i=0;i<init_var[1];i++){
for(b=0;b<5;i++){
while(player_cards[i][b]<53){
player_cards[i][b]=random();
}
}
}
}
return 0;
}
void inicio(void){
char cont='n';
while(cont=='n'){
init_var[1]=0;
init_var[2]=0;
while (init_var[1]<=1 || init_var[1]>4 ){
printf("Elija el numero de participantes\n");
scanf("%d",&init_var[1]);
if(init_var[1]<=1 || init_var[1]>4){
printf("El numero minimo de jugadores tiene que ser 2 y el maximo de 4\n");
}
}
while(init_var[2]<init_var[1]){
printf("Elija el dinero disponible para cada participante\n");
scanf("%d",&init_var[2]);
if(init_var[2]<init_var[1]){
printf("El numero de dinero para cada participante debe de ser igual o mayor al numero de participantes\n");
}
}
printf("numero de participantes: %d \n Dinero por participante %d \n Es esto correcto? y/n \n ",init_var[1],init_var[2]);
while(getchar()!='\n'){}/*Limpia el buffer para poder usar getchar(); */
cont=getchar();
}
}
Si alguien me ayudara le estaria muy agradecido por cierto si sirve de algo uso el compilador GCC y ubuntu de 32 bits.