如何在C中确定数组的大小?

时间:2012-04-28 18:17:40

标签: c arrays sizeof

  

可能重复:
  How to find the sizeof(a pointer pointing to an array)

我试过这段代码:

#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]并且它没有解决问题...任何人都可以帮忙吗?

BTW不知道它是否有用(可能只是知道整数的大小),但我在Ubuntu 32位虚拟机中运行Eclipse。

谢谢!

1 个答案:

答案 0 :(得分: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;
}