Ir ao conteúdo
  • Cadastre-se
Bruxo2

Problema em Leitura de Arquivo

Recommended Posts

Boa tarde, eu fiz toda minha Tabela Hash aqui, e para testar a mesma eu leio as chaves de um arquivo, só que sempre quando chega na ultima linha ele dar Segmetantion Fault, alguém sabe por que?

while(!feof(fp) && i <2500000){


Chave novo;
fgets(aux,150, fp);
//grava a linha na aux
aux1 = strtok(aux, " ");
aux2 = atoi(strtok(NULL, " "));
//separa a aux em string e numero
novo.numero = aux2;
novo.string = (char*) malloc (150*sizeof(char));
novo.prox = NULL;
if(novo.numero==0) break;
strcpy(novo.string,aux1);

//grava numa variavel Chave

float fatorCarga = (float) numeroElementos/posições;
//atualiza fator de carga.

insere(novo, vet1);
//insere.


if(fatorCarga>CARGAMAXIMA){
//rehash
numeroElementos = 0;

vet1 = rehash(vet1);
//rehash

//para_cronometro("Tempo: ", i);
//fprintf(fp1,"REHASH para %d\n", posições);
//utilizado no relatorio

}
//if(i%20000==0){

//v = para_cronometro("Tempo: ", i);
//printf("%d, Tempo: %.9f s\n", i,v);
//fprintf(fp1, "%d;%.9f\n", i, v);
//inicia_cronometro();

//}//utilizado no relatorio


i++;


}

Eu tive que colocar o i<2500000 para não dar o segmetantion.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como é a organização do conteúdo no arquivo? voce não está fazendo a verificação das variáveis aux1 e aux2, talvez a função strtok esteja retornando NULL, se for isso o erro provavelmente ocorre no strcpy, use o o debugger, ele é muito útil nesses casos.

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×