gpt4 book ai didi

c - 尝试分配不兼容的类型时出错

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:55 25 4
gpt4 key购买 nike

当我试图打印出这个列表时得到的错误是一个不兼容的类型错误。我尝试将其转换为结构宏、静态结构宏、指针,但都不起作用。

struct macro {
struct macro *next;
char * macro_name;
char * macro_body;
};

static struct macro macro_list = {
.next = NULL,
.macro_name = NULL,
.macro_body = NULL
};

//--------------------------------------------------------------------------------

void macro_list_print(void){
printf("Printing macro_list\n");
if(macro_list.next == NULL){
printf("--No macros\n");
}
struct macro p = macro_list;
while(p.next != NULL){
printf("%s %s\n",p.macro_name,p.macro_body);
p = macro_list.next; //This line gives me the error.
}
}

我不知道该做什么。任何帮助都会被挪用谢谢。

最佳答案

p 是一个 struct macromacro_list.next 是一个 struct macro*。更改为:

struct macro* p = &macro_list;
while(p != NULL){
printf("%s %s\n",p->macro_name,p->macro_body);
p = p->next;
}

我进行了以下额外更改:

  • macro_list.nextp->next,否则它永远不会超过列表中的第二项。
  • while 中的条件更改为 p != NULL,否则它不会在检查 p- 时处理列表中的最后一个元素>next != NULL

关于c - 尝试分配不兼容的类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625147/

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