История изменений
Исправление firkax, (текущая версия) :
Это не VLA, меньше графоманию читай. VLA это массив - локальная переменная с размером, вычисляемым во время выполнения. А тут это просто указатель на char (не массив!, собственно sizeof это наглядно показывает), вне зависимости от того что в квадратных скобках написано. Такой синтаксис аргументов-указателей считаю неудачным, он часто вводит в заблуждение новичков, но он есть уже очень давно, в C89 уже вроде был.
VLA же это изобретение комитетчиков для C99, но авторы компиляторов его сообща проигнорили, из-за чего комитетчики в C11 объявили его необязательным. Впрочем, компиляторы со временем поддержку таки добавили. Использовать не рекомендую - эта штука добавляет всякие неочевидные проблемы, лучше использовать явное alloca (для маленьких) или malloc (для больших) если нужен массив заранее неизвестного размера. Ещё для маленьких можно просто массив фиксированного размера объявить.
Исправление firkax, :
Это не VLA, меньше графоманию читай. VLA это массив - локальная переменная с размером, вычисляемым во время выполнения. А тут это просто указатель на char (не массив!, собственно sizeof это наглядно показывает), вне зависимости от того что в квадратных скобках написано. Такой синтаксис аргументов-указателей считаю неудачным, он часто вводит в заблуждение новичков, но он есть уже очень давно, в C89 уже вроде был.
VLA же это изобретение комитетчиков для C99, но авторы компиляторов его сообща проигнорили, из-за чего комитетчики в C11 объявили его необязательным. Впрочем, компиляторы со временем поддержку таки добавили. Использовать не рекомендую - эта штука добавляет всякие неочевидные проблемы, лучше использовать явное alloca (для маленьких) или malloc (для больших) если нужен массив заранее неизвестного размера.
Исправление firkax, :
Это не VLA, меньше графоманию читай. VLA это массив - локальная переменная с размером, вычисляемым во время выполнения. А тут это просто указатель на char (не массив!, собственно sizeof это наглядно показывает), вне зависимости от того что в квадратных скобках написано. Такой синтаксис аргументов-указателей считаю неудачным, он часто вводит в заблуждение новичков, но он есть уже очень давно, в C89 уже вроде был.
VLA же это изобретение комитетчиков для C99, но авторы компиляторов его сообща проигнорили, из-за чего комитетчики в C11 объявили его необязательным. Впрочем, компиляторы со временем поддержку таки добавили.
Исходная версия firkax, :
Это не VLA, меньше графоманию читай. VLA это массив - локальная переменная с размером, вычисляемым во время выполнения. А тут это просто указатель на char (не массив!, собственно sizeof это наглядно показывает), вне зависимости от того что в квадратных скобках написано. Такой синтаксис аргументов-указателей считаю неудачным, он часто вводит в заблуждение новичков, но он есть уже очень давно, в C89 уже вроде был.