我写了一个函数,它接受一个指向数组的指针来初始化其值:
#define FIXED_SIZE 256
int Foo(int *pArray[FIXED_SIZE])
{
/*...*/
}
//Call:
int array[FIXED_SIZE];
Foo(&array);
并且它不能编译:
错误C2664:'Foo':无法将参数1从'int(*__w64)[256]'转换为'int*[]'
然而,我把这个东西拼凑在一起了:
typedef int FixedArray[FIXED_SIZE];
int Foo(FixedArray *pArray)
{
/*...*/
}
//Call:
FixedArray array;
Foo(&array);
它是有效的。我在第一个定义中缺少了什么?我以为这两个定义是等效的...