可能重复:
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。
谢谢!
答案 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;
}