-3

重複
の可能性: sizeof (配列を指すポインター) を見つける方法

私はこのコードを試しました:

#include<stdio.h>


int dime(int v[]){
    int i= sizeof v / sizeof *v;
    return i;
}

int main() {
    int v[10]={1,2,3,4,5,6,7,8,9,0};
    int i= dime(v);
    printf("The size of v is %d\n",i);
    return 0;
}

サイズが1であることがわかり、* vをv [0]に変更しようとしましたが、問題は解決しませんでした...誰か助けてくれますか?

ところで、それが役立つかどうかはわかりませんが(整数のサイズを知るためだけかもしれません)、Ubuntu 32ビット仮想マシンでEclipseを実行しています。

ありがとうございました!

4

1 に答える 1

0

ポインターとして渡される場合、コンパイラーは配列サイズを認識しません。配列として明示的に渡される場合のみです。これはうまくいきます:

int main() {
    int v[10]={1,2,3,4,5,6,7,8,9,0};
    int i = sizeof(v) / sizeof(*v);
    printf("The size of v is %d\n",i);
    return 0;
}
于 2012-04-28T18:20:11.153 に答える