c - 动态结构数组

标签 c arrays struct malloc realloc

我对在网上找到的一段代码有几个问题,它位于http://www.c.happycodings.com/Data_Structures/code9.html。 .

  1. 为什么strarray定义为**
  2. 我们是否必须先malloc() 数组,然后malloc() 它的每个元素?

    strarray = (struct node **)realloc(strarray, (count + 1) * sizeof(struct node *));

    strarray[count] = (struct node *)malloc(sizeof(struct node));

  3. 如何完全释放()这个数组?

谢谢

最佳答案

  1. strarray 是指向指针数组的指针,每个指针指向一个节点结构。这是对象数组的基本表示。对于基本类型,您只能使用一个 *,因为它是一个指向基本类型数组的指针。您也可以对结构执行此操作,这取决于您要对数组执行的操作。

  2. 是的,是的。

  3. 首先遍历数组,释放每个成员,然后释放数组。释放的线索:释放你分配的所有东西。

关于c - 动态结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401463/

相关文章:

arrays - ANSI C,垃圾收集器和函数环境数组,退出函数会取消数组吗?

javascript - 如何使 HTML 表格使用 PHP 数组

c++ - 通过网络发送结构

c - 将 char *c[] 分配给结构中的双指针

c - 分配给结构的不兼容指针类型

python - Windows 管道 : Write from C - read in Python

c - 如何处理非常大的整数?

c - 从文件 (.txt) 中读取并保存到 char* C

PHP - 按键长度对哈希数组进行排序

python - 连接具有不同第一维的二维数组