C имеет действительно классную функцию, называемую массивами переменной длины. Его доступно на C90 и выше, и это позволяет отложить размер массива до времени выполнения. См. Руководство GCC 6.19 Arrays of Variable Length.Могу ли я использовать переменную длину переменной C в C++ 03 и C++ 11?
Я работаю на C++. В std=c++11
, я поймаю сбой компиляции из-за использования alloca
под Cygwin. Я хочу, если возможно, переключиться на массивы переменной длины. Я также хочу попытаться избежать std::vector
и std::array
, потому что я хочу держаться подальше от менеджера памяти. Я считаю, что каждый бит помогает, поэтому я рад воспользоваться этими возможностями (что некоторые люди рассматривают глазок).
Могу ли я использовать массив переменной длины в C++ 03 и C++ 11?
Вы можете достигнуть VLA с помощью alloca – texasbruce
. Было бы проблемой поставить некоторые ограничения на работоспособность вашей программы и использовать массив статического размера? – paddy
Это не проверка границ, которая меня беспокоит. Его время от времени происходит в диспетчере памяти каждый раз, когда вызывается эта конкретная функция ..... Поскольку я не могу зависеть от динамических массивов (спасибо Basile), мне придется рассмотреть переход на 'std :: array', так как это C++ 11. – jww