编译通过运行出问题,请高手指教!!
# include <stdio.h>int add (int array[],int n);
int main()
{
int arr[]={0,1,2,3,4,5,6,7,8,9};
int size=sizeof(arr)/arr;
printf("%d\n\n",add (arr,size));
return 0;
}
int add (int array[],int n)
{
int sum=0;
int i;
for(i=0;i<n;i++)
{
sum+=array;
}
return sum ;
}
代码本身没有问题
可能是已经有一个该程序在跑或者编译器的问题 # include <stdio.h>
int add(int array[], int n);
int main()
{
int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
//int size = sizeof(arr) / arr; 按照我的理解这里也应该取的是大小,而不是值~ 除以0没意义啊~
// 这么写 你的数据还会越界。。
int size = sizeof(arr) / sizeof(arr);
printf("%d\n\n", add(arr, size));
return 0;
}
int add(int array[], int n)
{
int sum = 0;
int i;
for (i = 0; i<n; i++)
{
sum += array;
}
return sum;
} 谢谢!!!
是越界的问题,我把第六行改为
int size=sizeof(arr)/sizeof(arr);
就OK了!!
页:
[1]