napisałem funkcję, która pobiera wskaźnik do tablicy w celu zainicjowania jego wartości:Wskaźnik do tablicy jako parametr funkcji
#define FIXED_SIZE 256
int Foo(int *pArray[FIXED_SIZE])
{
/*...*/
}
//Call:
int array[FIXED_SIZE];
Foo(&array);
I to nie kompiluje:
error C2664: 'foo' nie można przekształcić parametr 1 z 'int (* __ W64) [256],' do 'int * []'
Jednak zhakowałem to razem:
typedef int FixedArray[FIXED_SIZE];
int Foo(FixedArray *pArray)
{
/*...*/
}
//Call:
FixedArray array;
Foo(&array);
I działa. Czego mi brakuje w pierwszej definicji? Myślałem, że dwa byłyby równoważne ...
Tak, wskaźnik do pierwszego elementu, jak również do rozmiaru (jeśli to konieczne, co prawdopodobnie jest). –
Uderzyłeś mnie w to! – Mosby