关于未知大小数组的extern问题
请教一个比较弱智的问题,我在文件m定义了一个数组,大小并没有确定,如下;int a[]={1,2,3,4};
现在我想在文件b引用a[],请问怎么定义,我用extern a[], extern *a,都不行,对于这种情况有什么办法吗?我不打算把a定义成固定大小的数组,谢谢。 回复 1# sky__sea
用 extern int a[]; 就可以了。 不行的,编译报错。 int *a;
a可以是固定数组,也可以自己new的动态数组。
不过,从使用上来讲还是vector更方便 传说中的TC?
基本上extern int a[];一定可以的。
什么编译器都不讲, 讲个P啊。
PS:楼主是Link错吧?本来只想编译却同时Link了??????????????????????????????????? extern的时候没错,但是代码里有sizeof(a)的时候编译就会报错,error: invalid application of 'sizeof' to incomplete type 'int[]' invalid application of 'sizeof' to incomplete type:
编译器也不知道a的大小啊, 不能sizeof.
它的size要通过其它方法传入。
invalid application of 'sizeof' to incomplete type:
编译器也不知道a的大小啊, 不能sizeof.
它的size要通过其它方法传入。
比如:
-- a.cpp --
int a[]={1,2,3,4,5,};
int size_a =sizeof(a)/sizeof(a);
-- b.cpp --
extern int a[];
extern int size_a;
for(int i=0; i<size_a; i++){
printf("%d ", a);
}
我的意思是有没有通用的办法,sizeof在本文件内是有效的,但是其他文件extern不行,如果没有,那我只好其他文件换个处理方式了,谢谢楼上。 在数组实际定义的文件里, 加一个get_a_size的函数给别的文件用~
基本和妇科老人的方法是一样~
页:
[1]
2