Я запутался, почему вы используете динамическое распределение и концепцию выделения достаточного количества памяти для данных.Таким образом, мы покрываем связанные списки в моем классе, и есть следующий код:
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;
};
Код должен создать дерево со строками, которые вводятся пользователем.Я предполагаю, что вы динамически распределяете NODE, потому что вы, очевидно, не знаете, сколько детей вам понадобится.Но тогда зачем вам нужен размер строки str, которую нужно ввести?Или это сделано из-за того, как структура определена, и вы хотите выделить точное значение amt, если в структуре указано size_t count [50] и только что была потрачена впустую память.Это идея?Спасибо!