gpt4 book ai didi

c - 结构自引用

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:58 24 4
gpt4 key购买 nike

我到处都有语法错误,对 ADT 语法和内存处理的理解很差。我需要一个在 nextprev 中引用自身(其他部分)的结构。我做对了吗?我收到错误...

struct _header * header;

typedef struct _header {
int signiture;
int size;
header_t* next;
header_t* prev;
} header;

我还想用 header 初始化内存中的前 32 个字节(这也不顺利..):

//this is to reference the memory block later
static int *free_list_ptr;

void function(u_int32_t size){
memory = (byte*) malloc(size);
header firstHead = malloc(sizeof(_header));
free_list_ptr = firstHead = memory;
firstHead->prev = free_list_ptr;
firstHead->next = free_list_ptr;
}

最佳答案

您不能在创建 typedef 时引用它,所以您应该这样做:

typedef struct a_header {
int signiture;
int size;
struct a_header* next;
struct a_header* prev;
} header;

header* the_header;

避免使用带前导下划线的名称 - 它们是为系统保留的。

关于c - 结构自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12010821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com