指向链接列表指针数组的指针

Ale*_*lex 5 c arrays malloc pointers

嘿伙计们,所以我在过去的6个小时里一直在这个问题,并一直在谷歌疯狂无济于事.对,我需要一个指向数组的指针.此数组包含指向链接列表的指针.我将不得不malloc它,因为我不知道数组大小,直到运行时.

LList **array
Run Code Online (Sandbox Code Playgroud)

这是我的第一个想法,但这只是给了我一个LList数组的指针.或者至少这是我的理解.有人可以帮我一把吗?亚历克斯

编辑:确定如何使用它的一些信息.我实现了一个非常基本的哈希表.有一个结构包含指向链表的指针数组的指针.它需要是一个指向数组的指针,这样当我调整表格大小时,我只需将指针更改为指向较大的表格即可.

use*_*379 5

听起来你走在正确的轨道上.

LList **array;
array = malloc(num_ptrs * sizeof(LList*));
Run Code Online (Sandbox Code Playgroud)

array现在是一个指针数组LList,并且元素array[3]将是指向a的指针LList.

数组中的数组和指针非常相似(但不完全相同!),如经典示例所示:*(array + 2)大部分相当于array[2].

编辑: 当您需要调整表格大小时,您只需要realloc额外的空间:

LList **new_array;
new_array = realloc(old_array, new_size * sizeof(LList*));
Run Code Online (Sandbox Code Playgroud)

new_array并且之后old_array可能或可能不是相同的指针,但是new_array保证两种方式都是指向足够空间来保存新数组的指针(或者NULL如果无法分配内存)

第二次编辑: 正如user411313所提到的,如果你想要指向数组的实际指针,你需要获取数组的地址:

LList ***p_array;
p_array = &array;
Run Code Online (Sandbox Code Playgroud)