Boa noite, pessoal.
Estou com um projeto para implementar quatro tipos de tabela hash: encadeamento interno, encadeamento externo, tentativas lineares e hashing duplo.
Estou agora fazendo a parte do encadeamento externo, mas estou com um erro que não consigo solucionar. Caso alguém possa me ajudar, segue o código abaixo:
> void inserirHashExterno(Hash tabela, string valor) {
> int chave = divisao_inteira(valor); // Chave hash
> Dados *aux = tabela[chave]; // Posição na tabela de acordo com a chave
> while (aux != NULL || aux->info != valor) { // Posição na tabela é vazia OU se o valor que será inserido é igual
> aux = aux->prox; // Percorre a tabela
> }
> if (aux == NULL) {
> aux = (Dados*)malloc(sizeof(Dados)); // Aloca uma posição na memória para aux
> aux->info = valor; // Atribui valor em aux->info (string) -> ERRO AQUI (Access violation writing location)
> aux->prox = tabela[chave]; // Atribui a próxima posição da tabela para o próximo item da lista
> tabela[chave] = aux; // A posição da tabela onde foi inserido o valor, recebe o ponteiro da lista.
> }
> }