Я сделал функцию, которая проверяет, равны ли 6 элементов массива, и, если они есть, изменяет значение другого массива. Он компилируется, но когда я запускаю его, я получаю «переполнение буфера стека», и мой компилятор говорит, что мой массив не инициализирован, даже если я его инициализировал.
Я попытался переопределить весь массив в функции, но это дало ошибку «ожидаемое выражение».
int match(int numbers[], int matchHighest){
int matchArray[] = {0, 0, 0, 0, 0, 0};
int i = 0;
match6(&numbers[i], &matchArray[5]);
matchHighest = matchArray[5];
return matchHighest;
}
int match6 (int numbers[], int matchArray[5]){
int i=0;
matchArray[5] = 0;
while((numbers[i]==numbers[i+1]) && (i<4)){
i++;
}
if(i == 4){
matchArray[5] = 6 * numbers[0] + 27;
}
return matchArray[5];
}
Я хочу изменить значение matchArray [5], если выполняется условие if.
Edit:
Мой главный это:
int main(void){
int numbers[6]={0,0,0,0,0,0};
int matchHighest = 0;
inputArray(numbers);
match(numbers, matchHighest);
printf("test worked \n");
return 0;
}