Отладка C для кода Game of Life

#c #debugging

#c #отладка

Вопрос:

Хорошо, я только что закончил создавать функцию для некоторого кода, который я создаю, который в конечном итоге станет Game of Life Конвея, но я получаю несколько неожиданных ошибок.

Вот код:http://tinypaste.com/244cf522

Ошибки являются:

ошибка: поиск имени ‘q’ изменен для ISO ‘на’ scoping

ошибка: ожидаемый инициализатор перед ‘while’

Комментарии:

1. Исправлена ошибка инициализатора, я забыл точку с запятой, хотя все еще возникают проблемы с первой ошибкой.

2. Я предполагаю, что есть новые правила о том, что если вы инициализируете переменную внутри цикла for, вы не можете использовать ее вне цикла, тьфу, думаю, мне нужно еще немного отладить.

Ответ №1:

Область действия q ограничена for циклом, в котором она была объявлена; любые переменные, которые объявлены в части инициализации for цикла, обрабатываются таким образом.

Вам нужно изменить область действия q , чтобы она сохранялась даже после того, как область действия for цикла исчезла. Для этого просто переместите

 int q;
  

от в for до выше for и изменить

 for (int q = ...
  

Для

 for (q = ...
  

Таким образом, все это будет выглядеть как

 int q;
for(q=1; var2 == "Yes" amp;amp; Seeds != Seeds; q  ){
  

или

 int q = 1;
for(; var2 == "Yes" amp;amp; Seeds != Seeds; q  ){
  

Кроме того, это не новое правило 🙂

Комментарии:

1. Странно, спасибо! В итоге я просто создал цикл while, но теперь я знаю, что делать, если это произойдет снова, спасибо!