Can';在浏览链表时不能访问指针

Can';在浏览链表时不能访问指针,c,hash,linked-list,C,Hash,Linked List,我正在制作一个简单的哈希表和一个哈希函数。表的每个元素都有一个指向另一个节点的指针,当发生冲突时,insert函数将使用该节点。问题是,当发生冲突时,我的代码在链接列表中导航时就会崩溃。下面是代码(如果有点长,很抱歉): 以下是主要功能: int main() { itemTabela *ptrTabela[TAM] = {}; inicializaTabela(ptrTabela); insere(6, "Chico", ptrTabela); insere(6

我正在制作一个简单的哈希表和一个哈希函数。表的每个元素都有一个指向另一个节点的指针,当发生冲突时,insert函数将使用该节点。问题是,当发生冲突时,我的代码在链接列表中导航时就会崩溃。下面是代码(如果有点长,很抱歉):

以下是主要功能:

int main()
{
    itemTabela *ptrTabela[TAM] = {};
    inicializaTabela(ptrTabela);
    insere(6, "Chico", ptrTabela);
    insere(6, "Chico", ptrTabela);
    return 0;
}
我是以错误的方式访问指针还是进行了非法访问? 谢谢你的时间

1) 初始化
ItemAux
还需要
ptr
初始化。如
ItemAux->ptr=NULL

(二)

应该是

    ptrAux = TabelaHash[idx];

    while(ptrAux->ptr != NULL)
    {
        ptrAux = ptrAux->ptr;
    }
    ptrAux->ptr = ItemAux;
(一) 初始化
ItemAux
还需要
ptr
初始化。如
ItemAux->ptr=NULL

(二)

应该是

    ptrAux = TabelaHash[idx];

    while(ptrAux->ptr != NULL)
    {
        ptrAux = ptrAux->ptr;
    }
    ptrAux->ptr = ItemAux;

“问题是,当发生冲突时,我的代码在链接列表中导航时就会崩溃。”--什么是崩溃?你有没有用调试器自己解决这个问题?是的!调试器说它无法访问下一个指针的内存。下面是它的确切文字:“无法访问地址0xbaadf045处的内存”发生在哪条语句上?什么指针有那个值?它发生在ptrAux=ptrAux->ptr语句中。[提示]
int-funcaoHash(int-chave,char-nome[50])
首先让哈希值无符号;您不希望出现溢出,当然也不希望出现负面结果(将用作指针数组中的索引)。-->
unsigned funcaoHash(unsigned chave,char*nome)
“问题是,当发生冲突时,我的代码在浏览链接列表时就会崩溃。”--崩溃是什么?你有没有用调试器自己解决这个问题?是的!调试器说它无法访问下一个指针的内存。下面是它的确切文字:“无法访问地址0xbaadf045处的内存”发生在哪条语句上?什么指针有那个值?它发生在ptrAux=ptrAux->ptr语句中。[提示]
int-funcaoHash(int-chave,char-nome[50])
首先让哈希值无符号;您不希望出现溢出,当然也不希望出现负面结果(将用作指针数组中的索引)。-->
unsigned funcaoHash(unsigned chave,char*nome)
如果排序不重要,则应在前面插入,而不是后面插入。如果排序不重要,则应在前面插入,而不是后面插入。
    ptrAux = TabelaHash[idx]->ptr;

    //Here the code breaks
    while(ptrAux->ptr != NULL)
    {
        ptrAux = ptrAux->ptr;
    }
    ptrAux = ItemAux;
    ptrAux = TabelaHash[idx];

    while(ptrAux->ptr != NULL)
    {
        ptrAux = ptrAux->ptr;
    }
    ptrAux->ptr = ItemAux;