C

时间:2015-06-03 12:30:54

标签: c arrays

我在制作链接列表数组时遇到了困难。我有这个结构

typedef struct node {
    int id;
    struct node * next;
} t_point;

t_point* array[10];

我希望,例如,数组[0]指向链表的头部,然后填充,重复此过程到数组的所有空格

我理解我需要如何对其进行编码,但我无法做到正确。我只是希望有人向我展示并向我解释语法。

1 个答案:

答案 0 :(得分:0)

这样的事情:

t_point* array[10]

void link_list()
{
    int array_length = sizeof(array) / sizeof(t_point*);

    // Allocate the memory for the first list item
    array[0] = malloc(sizeof(t_point));

    // Iterate through each item in `array` and allocate it some memory
    for (int i = 1; i < array_length; i++)
    {
        // Allocate memory for the next item
        array[i] = malloc(sizeof(t_point));

        // Set the previous item's `next` field to the current item pointed to by `i`
        array[i - 1]->next = array[i];
    }

    // Close the list by adding a NULL pointer
    array[array_length - 1]->next = NULL;
}

另请记住free malloc内存,否则会导致内存泄漏。我会把它留给你。