我不明白为什么我得到这个错误我看了其他答案,我做的一切都正确。在图形数据中,我在结构Graph_Edge的定义之前在“struct Graph_Node”中使用“struct Graph_Edge”。我在“struct Graph_Edge”中使用“struct Graph_Node”。我不确定这可能是原因,如果是,我不明白为什么。
图表数据:
#ifndef Graph_Structure
#define Graph_Structure
#include <stdbool.h>
struct Graph_Node{
int id;
char node_name[100];
//bool path;
struct Graph_Node* next;
struct Graph_Edge* edge;
//struct Graph_Node* next_edge;
};
struct Graph_Egde{
int src;
int dst;
bool path;
struct Graph_Edge* next;
struct Graph_Node* node;
};
typedef struct Graph_Node graph_node;
typedef struct Graph_Edge graph_edge;
#endif
插入方法:
#include "graph.h"
...
void insert_edge(graph_edge** edge, graph_node* node, int src, int dst){
graph_edge* temp = (graph_edge*)malloc(sizeof(graph_edge)); // the error is here
temp->src = src;
temp->dst = dst;
temp->node = node;
temp->path = false;
temp->next = *edge;
*edge = temp;
}
我在malloc行的insert_edge方法中遇到了这种错误。
答案 0 :(得分:2)
你有一个错字:
struct Graph_Egde
应该是
struct Graph_Edge