带指针标签结构的Malloc

时间:2012-07-01 18:35:05

标签: c

我正在创建一个包含节点和边的简单图。我得到了功能,但有一些内存错误。

我在头文件中有一个typedef结构:

typedef struct Graph_s* Graph;

并在c中实施。文件:

struct Graph_s {
    Node* nodeArray;
    Edge* edgeArray;  
    size_t edges;
    size_t nodes;
};

施工功能:

Graph create_graph() {
    Graph newGraph = malloc(sizeof(Graph)); 

    newGraph->edges = 0;
    newGraph->nodes = 0;
    return newGraph;
}

Graph newGraph = malloc(sizeof(Graph))行给出了来自Valgrind的Invalid write of size 8

1 个答案:

答案 0 :(得分:3)

malloc(sizeof(Graph))仅为指针分配足够的内存。将其更改为malloc(sizeof(struct Graph_s))