【发布时间】:2021-05-23 02:10:55
【问题描述】:
它打印的是 0,但我希望是 1。数组中第一个维度的大小被省略,因为我想以相同的方法传递多个数组条目,如何获取它以进行迭代
void printValues(char hotelData[][3][50], int n);
char hotelData [1][3][50] =
{
"unidadeid1Fk", "john fernandes", "executiveRoom"
};
int main( void )
{
printValues(hotelData, 0);
}
void printValues(char hotelData[][3][50], int n)
{
int arraySize = sizeof (hotelData) / sizeof (hotelData[0]);
printf("ArraySize: %i ", arraySize);
}
输出是
ArraySize: 0
这段代码返回了这个警告,我不知道是什么意思以及如何解决它:
teste.c:在函数'printValues'中:teste.c:29:32:警告:数组函数参数'hotelData'上的'sizeof'将返回'char的大小 (*)[3][50]' [-Wsizeof-array-argument] int arraySize = sizeof (hotelData) / sizeof (hotelData[0]); ^ teste.c:27:27: 注意:在此声明 void printValues(char hotelData[][3][50], int n)【问题讨论】:
-
我不知道你到底想要什么,但是一个数组decays when passed as a function parameter。