Я пытаюсь выделить память в моей функции group_list.
Идея функции group_list состоит в сортировке Node * -элементов (которые являются списками) одинаковой длины в другом списке.
(Пример вида использования математической записи: group_list (["aa", "b", "cc", "d", "eee"]) = [["aa", "cc"], ["d"] , ["eee"]])
Если я хочу разместить n-элементы * в списке, я бы просто использовал calloc (n, sizeof (Node *)); а как выделить память для списка Node * -элементов?
Список может содержать только один элемент, который включает в себя n-элементов * Node или n элементов, которые включают в себя только один * -элемент Node и все, что между ними.
#include <stdio.h>
typedef struct Node {
void* value;
struct Node* next; // self-reference
} Node;
//constructor function
Node* new_node(void* value, Node* next) {
Node* node = calloc(1, sizeof(Node));
node->value = value;
node->next = next;
return node;
}
Node* group_list(Node* list) {
Node* new_list = calloc(??);
return NULL;
}
int main(void) {
Node* list1 = new_node("a", new_node("bb", new_node("ccc",
new_node("dd", new_node("e", NULL)))));
group_list(list1);
return 0;
}