【发布时间】:2021-03-02 22:04:21
【问题描述】:
我只有一个函数可以找出整数数组的最大值,但我得到了一个 分段错误,因为编译器没有显示该行,所以我找不到它的错误。
这是我的 C 代码:
#include <stdlib.h>
#include <stdio.h>
//Funktion ermittelt den größten Wert eines Arrays
int groesstesElement(int **arrayPointer){
int max = 0;
for (int i = 0; i < 3; i++) {
if (*arrayPointer[i]>max) {
max = *arrayPointer[i];
}
}
return max;
}
int main (int argc, char **argv) {
int array[4]={1,2,3,4};
int *ptr = array;
int z = groesstesElement(&ptr);
printf("%d\n", z);
return EXIT_SUCCESS;
}
我使用 macOS 和 VSC。
【问题讨论】:
-
分段错误是运行时错误。编译器不会知道这些。
-
调试器............
-
问题的根源在于您无缘无故地使用指向指针的指针。这反过来又使您的代码变得不必要地复杂,并且您最终编写了一个优先级错误。
标签: arrays c segmentation-fault max