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

BTW 不知道它是否有用(也许只是为了知道整数的大小),但我在 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 回答