Я написал эту программу на C, добавив намеренную ошибку по назначению.Как я могу обнаружить «вне связанной ошибки» в программе C с GDB?
Программа вычисляет сумму в 5 чисел, введенную пользователем, и отображает результат на экране.
Я скомпилировал его с помощью «gcc -Wall -Wextra -Werror -ansi -pedantic -g» и отлично работает.
Но у него есть ошибка.
В последнем повторении цикла программа оценивает значение [N], которое не определено!
Я хотел бы знать, как определить этот вид ошибки с помощью GDB
Когда я использую «заданный диапазон проверки на» я получаю эту messange «предупреждение: текущая настройка проверки диапазона не соответствует язык «. и ничего не происходит ...
Это код для отладки:
#define N 5
#include <stdio.h>
void read(float*);
int main(void) {
float a[N], s;
int i;
printf("Enter %d numbers: ", N);
read(a);
i = -1;
s = 0;
while (i != N) {
i = i + 1;
s = s+a[i];
}
printf("The sum is : %.2f \n", s);
return 0;
}
void read(float*a) {
int n = 0;
while (n!=N) {
scanf("%f",&a[n]);
n++;
}
}
Я бы дал valgrind выстрел, звучит как молоток для этого гвоздя;) – SBI