1

输出总是8!我想知道这个数字是从哪里来的,我怎样才能得到数组大小的正确大小,即 6?

#include <stdlib.h>
#include <stdio.h>

void cal(int a[])
{
    printf("the size of array is= %d\n", (int)(sizeof(a)/(sizeof)(int)));
}

int main ()
{
    int lis[]={1,2,3,4,5,6,7,8,9};
    cal(&lis[3]);
    return 0;
}
4

1 回答 1

0

当您只有一个 int 指针时,您无法计算 int 数组的大小。您将始终获得指针大小。

你可以试试这个(不确定这是否是个好主意): -

#define arrSz(a) (sizeof(a)/sizeof(*a))
于 2013-09-08T19:02:07.553 回答