Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c语言中结构的二维数组_C_Matrix - Fatal编程技术网

c语言中结构的二维数组

c语言中结构的二维数组,c,matrix,C,Matrix,我试着制作一个2D数组,在C中每个点都包含三个整数。 这是我的代码: typedef struct node { int path; int y; int z; }node; typedef struct graph { node *matrix[10][10]; }graph; int main(int argc, char** argv) { graph*map=malloc(sizeof(graph)); map->matri

我试着制作一个2D数组,在C中每个点都包含三个整数。 这是我的代码:

typedef struct node
{
    int path;
    int y;
    int z;
}node;

typedef struct graph
{
    node *matrix[10][10];   
}graph;

int main(int argc, char** argv)
{
    graph*map=malloc(sizeof(graph));
    map->matrix[0][0]->path=1;
    printf("%d",map->matrix[0][0]->path);
}

当我运行它时,我得到一个分段错误,这是我缺少的吗?

[使用OP编辑之前的定义]

您提供的代码无法编译,因为矩阵定义为

不兼容

但是有

不为矩阵中的元素分配内存,因此执行类似操作(与您的定义兼容):

使用未定义的行为(分段错误)取消对未初始化指针的引用

您还需要初始化矩阵中的指针,预先分配内存,如(至少):

或者不要使用具有以下内容的指针:

node matrix[10][10];  

在快速浏览中,我可以看到节点没有名为path的成员,代码将无法编译,您应该发布一个。谢谢我现在看到的发布了错误代码,但您的提示帮助了我anyway@xguekl24欢迎使用,下次发布代码时请小心,以提供正确的代码;-)
matrix[0].path
graph*map=malloc(sizeof(graph));
map->matrix[0][0]->x=1;
map->matrix[0][0] = malloc(sizeof(node));
node matrix[10][10];