相关疑难解决方法(0)

为什么C-Array在传递给函数时有一个错误的sizeof()值?

完整的例子:

#include <stdio.h>

void test(int arr[]) {
    int arrSize = (int)(sizeof(arr) / sizeof(arr[0]));
    printf("%d\n", arrSize); // 2 (wrong?!)
}

int main (int argc, const char * argv[]) {
    int point[3] = {50, 30, 12};

    int arrSize = (int)(sizeof(point) / sizeof(point[0]));
    printf("%d\n", arrSize); // 3 (correct :-) )

    test(point);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在将它传递给函数之前,sizeof给出了正确的值.在函数中完全相同的数组上执行完全相同的操作会产生奇怪的结果.缺少一个元素.为什么?

c arrays function sizeof

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

arrays ×1

c ×1

function ×1

sizeof ×1