1

如何声明具有动态分配的全局结构?我所知道的只是通过数组结构,但那是静态的。

4

2 回答 2

4

可以在函数中动态分配结构。

#include <stdlib.h>

struct s *p;

int main(void)
{
    p = malloc(sizeof *p);
    return 0;
}
于 2012-11-28T12:41:25.400 回答
1

标准做法是在头文件中声明结构并在函数中定义它。

例如:

struct node {
int data;
struct node* next;
};

这将在头文件中定义,并将在函数中动态分配内存,如下所示

int main(void){
struct node *head;
head = malloc(sizeof(struct node));
//operations goes here
}

也不要忘记free使用后的结构。

于 2012-11-28T12:52:10.633 回答