在Linux中,sizeof
运算符不能直接用于函数参数
例如,假设你有一个函数原型如下:
void my_function(int arr[]);
你可以通过传递数组的大小作为单独的参数来解决这个问题:
void my_function(int arr[], size_t arr_size);
然后在调用该函数时,你可以使用sizeof
来计算数组的大小:
int main() { int arr[] = {1, 2, 3, 4, 5}; my_function(arr, sizeof(arr) / sizeof(arr[0])); return 0; }
请注意,当数组作为函数参数传递时,它会被转换为指向数组第一个元素的指针。因此,在函数内部,你将无法使用sizeof
来获取数组的大小。要在函数内部获取数组的大小,你需要将其作为指针和大小一起传递,或者使用其他方法(例如,终止符)来确定数组的大小。