2013-11-13 2 views
1

Попытка узнать больше о массивах на C, но я столкнулся с проблемой. В начале программы я определить столбец массива и размер строки:Изменение определенного размера в функции

#define rows 10 
#define cols 20 

несколько функций, которые работают с массивом все нормально. Однако мне может потребоваться добавить функцию, которая изменяет определенные строки и столбцы для exaple до 5 и 10. Таким образом, есть ли способ сделать это в самой функции, не меняя числа в верхней части кода, где я их определял первый раз.

ответ

1

Когда вы используете #define, вы не создаете переменные как таковые. Скорее всего, каждое пятно, в котором используется токен rows или cols, 10 и 20 (соответственно) будет текстовый поддел. Поэтому нет смысла «переназначить rows или cols», поскольку он будет похож на попытку присвоить значение 10 или 20. Если вам нужна такая возможность переназначения, вместо этого используйте обычные переменные.

+0

+1, но, конечно, если они находятся в pre C99, они не смогут использовать VLA –

+0

@GradyPlayer: и размер VLA не может быть изменен во время исполнения после его определения в любом случае. –

Смежные вопросы