如果有人在谈论用C编程语言解决问题,并且他们说动态创建的结构是要走的路,他们可能指的是什么?还有其他名字吗?
答案 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编程语言创建的动态数据结构从堆中分配内存块时,它使用指针将这些块链接在一起成为某种数据结构。当数据结构不再需要它时,它将向堆返回一块内存。这种回收内存块的系统使程序对内存的使用非常有效。