ошибка С4703-используется потенциально неинициализированная локальная переменная-указатель "q"

Дан фрагмент кода:

int A[5]={1,3,-5,4,2}, n=5,*p,*q,a=0,b=0,c=0;
for(p=A+n-1;p>=A;p--)
   if(p>A+1 && p<A+3)
                q=p;
     a=*q; b=*(q-1);

задача такая: Вычислить значения всех переменных в заданном фрагменте программы при выполнении каждой строки.

но когда я пытаюсь запустить отладку, выдает такую ошибку:

С4703-используется потенциально неинициализированная локальная переменная-указатель "q"

введите сюда описание изображения

В чем проблема и как ее можно решить?


Ответы (1 шт):

Автор решения: Awesome Man

Все просто, вы не инициализировали указатели p и q

Замените строку инициализации, на такую:

int A[5]={1,3,-5,4,2}, n=5,*p = nullptr,*q = nullptr,a=0,b=0,c=0;

→ Ссылка