Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 14:27   #11
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

MooNDeaR, это фича языка си (C99).

Компилятор гцц поддерживает эту фичу и для языка с++
Называется она "Variable-length array"

http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html

Если хотите, что бы ваш код компилялся не только гцц, то лучше её не использовать.

И да, аллоцируется такой массив на стеке.
_Bers вне форума Ответить с цитированием
Старый 12.01.2014, 14:50   #12
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
массивы переменной длины в крестах - это расширение гсс (во всяком случае до стандарта с++03). чтобы компилять стандартом с++98 и игнорировать все расширения нужно писать так:
g++ -std=c++98 -pedantic-errors main.cpp
Цитата:
Компилятор гцц поддерживает эту фичу и для языка с++
Называется она "Variable-length array"

http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html

Если хотите, что бы ваш код компилялся не только гцц, то лучше её не использовать.

И да, аллоцируется такой массив на стеке.
Like.
Спасибо, моё любопытство удовлетворено.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 12.01.2014, 15:09   #13
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Если я не ошибаюсь, то в C++14 появятся массивы переменной (во время выполнения, внутри функций) длины.
Из википедии:
Код:
Runtime-sized one dimensional arrays[edit]

In C++11 and before, arrays allocated on the stack were restricted to a fixed, compile-time size. C++14 allows the last dimension of an array allocated on the stack to use a runtime size.[2]

Arrays with a runtime size may not be declared as member of objects or in global storage; they may only be declared locally. Arrays of runtime size also work with C++11's range-based for statement.

Последний раз редактировалось 220Volt; 12.01.2014 в 15:40.
220Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
странное поведение компилятора Kukurudza Общие вопросы C/C++ 10 23.09.2011 08:22
Странное поведение realloc eraserhp Помощь студентам 0 15.05.2010 18:06
Странное поведение gets alex_alpha Общие вопросы C/C++ 3 27.03.2010 18:21
Странное поведение процедуры Sergey1974 Общие вопросы Delphi 2 11.12.2009 21:41