Fiz debug e depois de terminar o ciclo for
ocorre uma interrupção e diz que o programa foi encerrado com SIGSEGV, segmentation fault …
O Ciclo onde ocorre o erro :
IND_t init_pop(INFO dados) { IND_t aux; int i,j,count = 0; aux = malloc(sizeof(IND_t)*POP_SIZE); if(!aux) { printf("Erro na alocacao de memoria...\n"); exit(1); } for(i = 0; i < POP_SIZE; i++) { for(j = 0; j < dados.nMoedas; j++) { count = 0; while(count < 5) { if(flip())//se for 1 adiciona 1 moeda { aux[i].sol[j]++; } count++; } } } //ERRO AQUI e TRAVA ANTES DE DEVOLVER return aux; }
A estrutura :
typedef struct individual IND, *IND_t; struct individual { // Solução (moedas) int sol[MAX_MOEDAS]; // numero de moedas da solucao float custo; // float qualidade; //valor da solucao float valorSol; bool valida; };