在谈论C语言时,有人通过动态创建的结构意味着什么?

时间:2013-08-22 18:16:51

标签: c coding-style

如果有人在谈论用C编程语言解决问题,并且他们说动态创建的结构是要走的路,他们可能指的是什么?还有其他名字吗?

3 个答案:

答案 0 :(得分:1)

分配要求您为数据结构使用动态内存分配。您的程序可能不使用静态分配的内存,例如int array[65536];。相反,所有这些都需要使用malloc/calloc/realloc按需分配(并且应该使用free释放。)

答案 1 :(得分:0)

C允许您根据需要在程序运行时分配新内存(这就是为什么称为“动态分配”)。

例如:您有一个非常基本的结构,一个链表,但您不知道在执行程序期间需要多少个节点。因此,在您的代码中,您声明每次需要在列表中存储新节点时,程序必须采用此 x 内存量并分配新节点(将附在现有清单上)

typedef struct {
    int datum;
    Node *next;
} Node;

然后你就可以了:

Node *new_node = (Node *)malloc(sizeof(Node);

以同样的方式,您可以在运行时释放内存:

free(new_node);

答案 2 :(得分:0)

如果您的问题是How to create structure dynamically?

在不知道你想问什么的情况下,我只是回答,假设你只是在问这个问题。

动态数据结构是一种数据结构,它在程序需要时通过从堆中分配和取消分配内存来改变大小 - 用于描述中央处理单元(CPU)可用的未使用内存的术语任何给定的时间。动态数据结构允许程序员精确控制他或她的程序消耗了多少内存。当用C编程语言创建的动态数据结构从堆中分配内存块时,它使用指针将这些块链接在一起成为某种数据结构。当数据结构不再需要它时,它将向堆返回一块内存。这种回收内存块的系统使程序对内存的使用非常有效。