gpt4 book ai didi

c - 指向链表指针数组的指针

转载 作者:太空狗 更新时间:2023-10-29 15:03:01 25 4
gpt4 key购买 nike

在过去的 6 个小时里,我一直在解决这个问题,并且一直在疯狂地搜索谷歌,但无济于事。

对了,我需要一个指向数组的指针。该数组包含指向链表的指针。我将不得不 malloc 它,因为我直到运行时才知道数组大小。

LList **array

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

编辑:关于如何使用它的一些信息:我正在实现一个非常基本的哈希表。有一个结构包含指向链表指针数组的指针。它需要是指向数组的指针,以便在我调整表大小时。我可以将指针更改为指向更大的表。

最佳答案

听起来您的方向是对的。

LList **array;
array = malloc(num_ptrs * sizeof(LList*));

array 现在是指向 LList 的指针数组,array[3] 等元素将是指向 的指针>LList.

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

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

LList **new_array;
new_array = realloc(old_array, new_size * sizeof(LList*));

new_arrayold_array 之后可能是也可能不是同一个指针,但无论哪种方式 new_array 都保证是指向足够空间的指针保存新数组(如果无法分配内存,则为 NULL)

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

LList ***p_array;
p_array = &array;

关于c - 指向链表指针数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4046718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com