注册 登录
编程论坛 C++教室

函数调用问题

vfdff 发布于 2008-06-03 00:20, 733 次点击
//编译器 cfree 3.5
void dump_array16(int array[],int size){
    int i;
    --size;
    for (i = 0; i < size; ++i) {
        printf("0x%04x, ", array);
        if(!((i+1)&0x7))
            printf("\n  ");
    }
    printf("0x%04x\n};\n\n", array[size]);
}
然后定义个变量
int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
函数调用,为什么用
dump_array16(&lut_nmsedec_ref0, 1 << T1_NMSEDEC_BITS);// 只是有个警告而已

dump_array16( lut_nmsedec_ref0, 1 << T1_NMSEDEC_BITS);
都正确呢?

[[it] 本帖最后由 vfdff 于 2008-6-3 12:57 编辑 [/it]]
6 回复
#2
sunkaidong2008-06-03 09:23
lut_nmsedec_ref0?这个是什么?
#3
CPlusPlusheart2008-06-04 20:29
可能是编译器的问题吧
我把你的代码考过来测试怎么也通不过啊
总是       error C2664: 'dump_array16' : cannot convert parameter 1 from 'int (*)[1024]' to 'int []'
#4
vfdff2008-06-09 01:08
回复 3# CPlusPlusheart 的帖子
什么编译器?
#5
beyond07022008-06-09 03:09
我想问:
   int a[10];
 之后    &a,a;  这两个一样吗,都是数组的首地址?






还有 你是否重载运算符了
#6
东方印2008-06-09 20:41
你说的都正确是什么意思?除了警告外,都能输出你所期望的正确结果吗?
按说,&lut_nmsedec_ref0,lut_nmsedec_ref0是不同的,这两个指针的基类型不同,严格的编译器是不可能发生这样的赋值的。
除非你重载“&”运算符。
#7
vfdff2008-06-14 22:50
回复 6# 东方印 的帖子
LS说的有道理
1