【发布时间】:2019-03-26 00:19:40
【问题描述】:
我试图用一个先例来解决我的问题,但不能适用于我的情况,这里有一个代码,用于在 c 中的数组中递归地查找数组的最大值。调试报错
程序收到信号 SIGSEGV,分段错误。
0x0000000000400682 in maxarray (arr=0x7ffffffffeb30, n=10, i=0,
最大值=) 在 main.c:23
有一个最大的地址,我不明白为什么它不能访问它。
#include <stdio.h>
int maxarray ( int arr[], int n , int i, int maximum);
int main(void){
int arr[10];
int maximum = 0;
puts("the array is");
for (size_t i=0; i<10; ++i) {
arr[i]=(rand()%10);
printf("%d ",arr[i]);
}
printf("the maximum is %d", maxarray(arr,10,0,maximum));
return 0;
}
int maxarray (int arr[10], int n, int i, int maximum){
if (i<10){
if (maximum<arr[i]){
maximum=arr[i];
}
maxarray(arr, n, i++, maximum);
}
else{
return maximum;
}
}
【问题讨论】:
标签: c memory segmentation-fault