关于结构体,帮忙看下为什么会报错.

豆笔来巡山 2008-12-06 07:52:34

#include <iostream>
using namespace std;
struct arc
{
int a; //点
int b;
int c; //权
};

struct vexarc
{
arc d[N];
int vex[N];
};

int main()
{
int n=5;
arc x[n];vexarc y[5];
return 0;

}


D:\CPP\Cpp4.cpp(20) : error C2057: expected constant expression
D:\CPP\Cpp4.cpp(20) : error C2466: cannot allocate an array of constant size 0
D:\CPP\Cpp4.cpp(20) : error C2133: 'x' : unknown size

如何如何解决呢?
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxxiaozi 2008-12-09
  • 打赏
  • 举报
回复
用完了记着delete
eboy2004 2008-12-09
  • 打赏
  • 举报
回复
直接 这样 arc *x=new arc[5]; 不要用int n=5;如果这样的话n要占用空间
elegant87 2008-12-08
  • 打赏
  • 举报
回复

//用动态分配比较好!
#include <iostream>
using namespace std;

const int N=5;
struct arc
{
int a; //点
int b;
int c; //权
};

struct vexarc
{
arc d[N];
int vex[N];
};

int main()
{
int n=5;
arc *x=new arc[n];
vexarc y[5];
return 0;

}
豆笔来巡山 2008-12-07
  • 打赏
  • 举报
回复
如何new? 我怎么试了不行?
豆笔来巡山 2008-12-07
  • 打赏
  • 举报
回复
哦,算是可以了...只有半个.
vexarc va[N];va[n]=new vexarct;
这样好像没什么意义..
bingshanzhiling 2008-12-06
  • 打赏
  • 举报
回复
new 之!
豆笔来巡山 2008-12-06
  • 打赏
  • 举报
回复
有没有什么办法让它可以做到int n;cin>>n;arc x[n];不报错呢?
awqwqw 2008-12-06
  • 打赏
  • 举报
回复
arc x[n] 宏定义n就可以
里面的n是常量,而不是变量
pengzongjin 2008-12-06
  • 打赏
  • 举报
回复
arc x[n]定义有问题,编译器不支持动态数组的定义。
改成arc x[5]就应该没问题了。
豆笔来巡山 2008-12-06
  • 打赏
  • 举报
回复
在最开始那地儿加一个#define N 2;
贴漏了.

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧