【发布时间】:2010-02-18 20:25:36
【问题描述】:
我很困惑为什么要使用动态分配以及为数据分配足够内存的概念。所以我们在我的课堂上介绍了链表,并且有这样的代码:
NODE *BuildTree(NODE *p, const char *str)
{
if (p == NULL)
size_t length = strlen(str) + 1;
p = (NODE *)malloc(sizeof(NODE));
p->string = (char *)malloc(length);
....
}
typdef struct Node NODE;
struct NODE
{
char *string;
size_t count;
NODE *left, *right;
};
该代码应该使用用户输入的字符串创建一棵树。我假设您动态分配节点,因为您显然不知道需要多少个孩子。但是,为什么需要为要输入的字符串 str 分配大小?或者是因为结构的定义方式并且您想要分配确切的amt,而不是结构说size_t count [50],并且只是浪费了内存。是这个主意吗?谢谢!
【问题讨论】: