我有這樣的結構:初始化
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
你能幫我嗎?
'graphe g = {m [5] [5],5};''m [5] [5]'這裏只是一個超出界限的訪問。 – dyp 2014-10-11 23:03:39
C和C++都不允許直接複製整個數組。此外,通過'= {..}'初始化允許省略大括號來初始化數組/結構成員。正如它目前所寫,你只用'= {m [5] [5],5}初始化'mat'成員的前兩個元素;' – dyp 2014-10-11 23:07:44