C 如何删除错误:应为';:'''''';}';或'__属性';在'之前=';代币
C 如何删除错误:应为';:'''''';}';或'__属性';在'之前=';代币,c,data-structures,C,Data Structures,#包括 #包括 结构树{ int数据; 结构树*左,*右; }; 结构队列{ 结构树**nodeQ=(结构树**)malloc(sizeof(结构树*); 内锋; 内部后部; }; 在C中,不能像对待nodeQ成员那样初始化内联结构成员 创建结构时,需要初始化成员 所以你需要做一些类似的事情 struct queue q = { malloc(sizeof(struct tree *)), 0, 0 }; 或 请注意,I.您遇到的问题是在定义结构时初始化它。 当使用_struct{…}的结构名
#包括
#包括
结构树{
int数据;
结构树*左,*右;
};
结构队列{
结构树**nodeQ=(结构树**)malloc(sizeof(结构树*);
内锋;
内部后部;
};
在C中,不能像对待nodeQ
成员那样初始化内联结构成员
创建结构时,需要初始化成员
所以你需要做一些类似的事情
struct queue q = { malloc(sizeof(struct tree *)), 0, 0 };
或
请注意,I.您遇到的问题是在定义结构时初始化它。 当使用_struct{…}的结构名_时;您正在定义一个数据类型。因此,你不能给它一个特别的价值
struct tree{
int data;
struct tree *left,*right;
};
struct queue{
struct tree ** nodeQ;
int front;
int rear;
};
这应该作为一个定义,还记得使用缩进和注释您的代码,因为这将产生一个更容易理解的程序,并且您将在两周后真正理解它
另外,我认为您的代码中实际上有一个错误,nodeQ不应该是普通指针而不是双指针吗?如果您尝试取消引用(访问指针引用的内容)两次,将出现seg错误
下面是如何初始化nodeQ的内容,假设它是一个指针,在一个函数中,我这次将在main函数中初始化它
#include <stdio.h>
#include <stdlib.h>
struct tree{
int data;
struct tree *left,*right;
};
struct queue{
struct tree * nodeQ;
int front;
int rear;
};
int main(void)
{
struct queue my_queue;
if(my_queue.nodeQ=malloc(sizeof(struct tree)))
fprintf(stderr, "Unable to allocate memory for my_queue nodeQ\n");
return 0;
}
#包括
#包括
结构树{
int数据;
结构树*左,*右;
};
结构队列{
结构树*nodeQ;
内锋;
内部后部;
};
内部主(空)
{
结构队列我的队列;
if(my_queue.nodeQ=malloc(sizeof(struct tree)))
fprintf(stderr,“无法为我的队列节点分配内存”);
返回0;
}
首先要理解,在C语言中不能这样做-->结构树**nodeQ代码>
struct tree{
int data;
struct tree *left,*right;
};
struct queue{
struct tree ** nodeQ;
int front;
int rear;
};
#include <stdio.h>
#include <stdlib.h>
struct tree{
int data;
struct tree *left,*right;
};
struct queue{
struct tree * nodeQ;
int front;
int rear;
};
int main(void)
{
struct queue my_queue;
if(my_queue.nodeQ=malloc(sizeof(struct tree)))
fprintf(stderr, "Unable to allocate memory for my_queue nodeQ\n");
return 0;
}