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 に答える