0

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

4

3 回答 3

1

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

于 2013-08-22T18:40:06.830 回答
0

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

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

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

然后稍后您可以:

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

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

free(new_node);
于 2013-08-22T18:44:41.583 回答
0

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

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

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

于 2013-08-22T18:46:39.507 回答