c语言中结构的二维数组
我试着制作一个2D数组,在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
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];