gpt4 book ai didi

c - 如何在C中计算函数参数的大小?

转载 作者:行者123 更新时间:2023-11-30 20:02:20 25 4
gpt4 key购买 nike

我在c中有以下代码:

void getNumber(int numberArray[])
{
printf("The size of the array is %u", sizeof(numberArray));
}

void main()
{
int array[6] = {1,2,3,4,5,6};
getNumber(array);
}

但是为什么 The size of the array is 4 ?如何获取整个数组的大小?

最佳答案

void getNumber(int numberArray[])

相当于

void getNumber(int* numberArray)

所以 sizeof(numberArray) 只是测量 int* 的大小。

如果您想知道数组的长度,您需要将其长度作为单独的参数传递

void getNumber(int* numberArray, int len)

getNumber(array, sizeof(array)/sizeof(array[0]));

或安排数组以已知的标记值结尾

int array[] = {1,2,3,4,5,6,-1}; // assumes -1 is not a valid value

int arrayLength(int* numberArray)
{
int len=0;
while (*numberArray++ != -1) {
len++;
}
return len;
}

关于c - 如何在C中计算函数参数的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19185551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com