多维数组赋值问题,试了好多遍,不知错在哪,高手请进
发布网友
发布时间:2024-10-10 20:50
我来回答
共3个回答
热心网友
时间:2024-10-13 22:31
如果是单独的针对*数组初始化是没有问题。
但是你的程序和别人的不一样,因为你有结构体。
当你声明了G之后,数组G.e也就被编译器分配内存并完成了定义和初始化,这时候你后面又来一个G.e[n][n]=……就不能算是定义上的初始化了。因而会失败。
改进方法就是通过for循环对G.e[n][n]进行一个个的赋值。
热心网友
时间:2024-10-13 22:32
这个是“变量初始化”和“变量赋值”混淆。
初始化可以使用如下代码:
int a[5][5]={
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}
} ;
这样写是不会有错误的,
而你的代码,graph G;这条语句时已完成了数组的定义,
G.e[n][n]={
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}
} ;
这条语句是数组的赋值,而不是初始化。
热心网友
时间:2024-10-13 22:32
楼上说的对
这里补充一点,花括号用于初始化,不用于赋值,初始化和赋值这两个概念要搞清楚。
你可以这样用
graph G={
{0},//用于给G.v初始化
{
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}
}
};