帮忙看下这个问题。
int arr[6]={0,4,3,2,5,1};
则sizeof(arr)/sizeof(int)结果为6.
但是如果有如下函数
- C/C++ code
void fun(int *arr){int i;for(i=1;i<=sizeof(arr)/sizeof(int);i++){//}}
循环体却不会执行,为什么?
[解决办法]
void fun(int *arr) 传进来的arr的大小是4,
void fun(int *arr)
{
int i;
for(i=1;i<=sizeof(arr)/sizeof(int);i++)
{
cout<<sizeof(arr)<<endl;
}
运行这个就可以看到了;
你可能是要传递一个数组,但是只有一个指针信息是不够的,数组大小要再加个参数才能传进去吧
如:void fun(int *arr,int size)
//当然可能有只传一个指针就能搞定的方法,请高手们指点指点了