为何编译不通过?

namyz 2003-08-21 11:40:45
我用VC6
程序中头文件中有如下一段代码:
struct LocaD
{
int LocaDx;
int LocaDy;
};

extern void InputData(struct LocaD tab[][]);

在编译时总提示(在“extern void InputData(struct LocaD tab[][]);”行中):
error C2087: '<Unknown>' : missing subscript
为什么?难道我定义类不正确?

谢谢。
...全文
20 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanker9608 2003-08-21
  • 打赏
  • 举报
回复
tab[][]这个参数是错误的建议使用*tab[]比较好些
NanjaiD 2003-08-21
  • 打赏
  • 举报
回复
同意楼上的
test7979 2003-08-21
  • 打赏
  • 举报
回复
多维数组一定要知道前几维的长度,

否则编译器不知道如何计算实际单元的位置啊
aflyinghorse 2003-08-21
  • 打赏
  • 举报
回复
多维数组作为参数,第一维以后的长度必须指定
likangnian0128 2003-08-21
  • 打赏
  • 举报
回复
extern void InputData(struct LocaD tab[][]);
~~~~~~~

形参可以这样写吗?我总觉得怪怪的。

为什么不用 (struct LocaD **) tab 呢?
zhengjc 2003-08-21
  • 打赏
  • 举报
回复
我比较喜欢用struct LocaD **tab
panther8888 2003-08-21
  • 打赏
  • 举报
回复
这个问题主要是由于没有指定第二维的大小,导致编译者器无法确定每一行该在什么地方结束,上面几位的方法都可以解决你的问题。
cityvagrant 2003-08-21
  • 打赏
  • 举报
回复
楼上,贴主要的是二维数组,用一级指针,不好吧。还是用struct LocaD **tab好
jack_wq 2003-08-21
  • 打赏
  • 举报
回复
用struct LocaD *tab算了,方便简单!
mooling 2003-08-21
  • 打赏
  • 举报
回复
extern void InputData(struct LocaD tab[][]);
~~~~~
要么指定第二维的大小
struct LocaD tab[][N]
或 struct LocaD *tab[]
这样都行啦

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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