История изменений
Исправление MOPKOBKA, (текущая версия) :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc, и это имеет смысл так как будет нормальный многомерный массив в Fortran стиле, а не указатели на указатели
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область
Создать пустой массив размером N на этапе передачи в стек параметров для функции и записать из этого пустого массива с мусором из стека данные в файл.
Не знаю что ты имел виду, но синтаксис void f(int n, char buf[n]); уже работает в gcc
Исправление MOPKOBKA, :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc, и это имеет смысл так как будет нормальный многомерный массив в Fortran стиле, а не указатели на указатели.
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область
Создать пустой массив размером N на этапе передачи в стек параметров для функции и записать из этого пустого массива с мусором из стека данные в файл.
Не знаю что ты имел виду, но синтаксис void f(int n, char buf[n]); уже работает в gcc
Исправление MOPKOBKA, :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc, и это имеет смысл так как будет нормальный массив в Fortran стиле, а не указатели на указатели.
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область
Создать пустой массив размером N на этапе передачи в стек параметров для функции и записать из этого пустого массива с мусором из стека данные в файл.
Не знаю что ты имел виду, но синтаксис void f(int n, char buf[n]); уже работает в gcc
Исправление MOPKOBKA, :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область
Создать пустой массив размером N на этапе передачи в стек параметров для функции и записать из этого пустого массива с мусором из стека данные в файл.
Не знаю что ты имел виду, но синтаксис void f(int n, char buf[n]); уже работает в gcc
Исправление MOPKOBKA, :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область
Создать пустой массив размером N на этапе передачи в стек параметров для функции и записать из этого пустого массива с мусором из стека данные в файл.
Не знаю что ты имел виду, но синтаксис void f(int n, char buf[n]); уже работает
Исходная версия MOPKOBKA, :
Более того массивы переменной длинны ака VLA C99 работают исключительно на стеке
Нет, можно кастануть во VLA память из malloc
а синтаксис является по сути сахаром к функции alloca
Нет, у alloca время жизни массива вся функция, у VLA только текущая область