【发布时间】:2014-09-05 06:44:37
【问题描述】:
我想找到作为参数传递给函数的整数数组的大小。 这是我的代码
void getArraySize(int arr[]){
int len = (sizeof(arr)/sizeof(arr[0])
printf("Array Length:%d\n",len);
}
int main(){
int array[] = {1,2,3,4,5};
getArraySize(array);
return 0;
}
我收到以下警告
sizeof on array function parameter will return
size of 'int *' instead of 'int []' [-Wsizeof-array-argument]
请帮忙,以便我可以在 function getArraySize 中找到整数数组的长度
但是我能够在main 函数中找到array 的大小。由于它是作为pointer 传递的,因此无法在function 中找到length。
我确实有一个想法。我可以把它放在try/catch 块中(C 没有尝试捕获,只有jumpers 取决于操作系统)并循环直到我得到segmentation fault。
有没有其他方法可以在function 中找到integer array 的长度
【问题讨论】:
-
int array = {1,2,3,4,5};??? -
感谢@SouravGhosh。
-
@ArpitSrivastava ???????
-
我的错误...我没有看到标签