gpt4 book ai didi

c - 结构体 C 中变量矩阵的初始化

转载 作者:行者123 更新时间:2023-11-30 17:27:41 27 4
gpt4 key购买 nike

我有这个结构:

typedef struct { int mat[x][x]; int res; } graphe;
graphe g;

无法访问图矩阵的问题

例如当我设置时:

int m[5][5]={{0,1,1,1,0},{1,0,1,1,0},{1,1,0,1,1},{1,1,1,0,1},{0,0,1,1,0}};
graphe g = { m[5][5], 5};

for(i=0;i<lignes;i++)
{
for(j=0;j<lignes;j++)
{
printf("%i ",g.mat[i][j]);
}
printf("\n");
}
printf("Res = %i ",g.res);

我有

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Res =0

通常应该是:

0 1 1 1 0
1 0 1 1 0
1 1 0 1 1
1 1 1 0 1
0 0 1 1 0
Res =5

你能帮我吗?

最佳答案

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct { int mat[5][5]; int res; } graphe;

int main(void) {
int m[5][5]={{0,1,1,1,0},{1,0,1,1,0},{1,1,0,1,1},{1,1,1,0,1},{0,0,1,1,0}};
graphe g;
memcpy( g.mat, m, sizeof(m));
g.res= 5;
for(i=0;i<lignes;i++)
{
for(j=0;j<lignes;j++)
{
printf("%i ",g.mat[i][j]);
}
printf("\n");
}
printf("Res = %i ",g.res);

使用数组 2D 时要小心,它不是像简单变量(如 g.res)那样简单的做作,因为您必须指示数组的大小,因此您必须使用 memcpy 来实现。

关于c - 结构体 C 中变量矩阵的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com