在另一个结构中分配结构的内存

allocate memory of struct within another structure

我正在实施 BST,需要您的建议。该代码有 2 个结构。我需要在项目结构中分配 link 结构。我该怎么做?我需要分配两个 item->link->left & item->link->right 吗? 请举例说明?

struct link;
struct link
{
   struct link *left;
   struct link *right;
};

struct item
{
   struct link link;
   uint8_t c;
};

在某处插入函数

item *temp = NULL;

// 我将如何分配内存 ??

首先,你必须为item分配内存。

item *temp = NULL;
temp = malloc(sizeof(item)); // alocate memory for 1 item

有了 item 之后,你必须为左右链接分配内存

temp->link.left = malloc(sizeof(link));
temp->link.left = malloc(sizeof(link));

请注意 .,它在那里是因为 item 中的 link 它不是指针。

列表结构是堆栈结构中的一个成员。堆栈封装了列表。这是一种使用几个函数 malloc 和初始化场景的方法。希望对您有所帮助!

typedef struct currentPos{
   int x;
   int y;
   currentPos * next;
}currentPos;

typedef struct stack
{
     currentPos * list;
}stack;

int main(){
     stack * myStack;
     myStack = malloc(sizeof(stack)*1);  // mallocing shell
     myStack = createStack(myStack);
     return(0);
 }

 stack * createStack(stack * myStack)
 { 
     myStack->list = createList();
     return(mtStack);
 }

 currentPos * createList()
 {
     currentPos * theHead;
     theHead = malloc(sizeof(currentPos)*1);   // mallocing inside
     theHead->x= 0;
     theHead->y=0;
     theHead->next = NULL
     return(theHead);
}