Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1685 / 891 / 364
Регистрация: 11.10.2018
Сообщений: 4,681
1

С какого стандарта в C++ динамический массив можно объявлять как статический?

17.08.2019, 14:28. Показов 529. Ответов 6

Здравствуйте. С какого стандарта в C++ динамический массив можно объявлять, как статический? Т.е. вот так:
C++
1
2
cin >> n;
int b[n];
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2019, 14:28
Ответы с готовыми решениями:

Можно ли заменить динамический массив на статический в реализации списка, и если да, то как?
Есть программа с реализованным списком через динамический массив. Много ли нужно будет в ней...

Как объявлять двумерный динамический массив
Доброго времени суток. При выделении памяти для динамического двумерного массива с разным...

Как перевести статический массив в динамический?
Есть статический массив типа char,подскажите как перевести его в динамический и как потом изменять...

Как преобразовать статический массив в динамический?
uses crt; const nmax=100; var a:array of integer; n,i,i1,k:byte; begin clrscr; randomize;...

6
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
17.08.2019, 14:35 2
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Здравствуйте. С какого стандарта в C++ динамический массив можно объявлять, как статический? Т.е. вот так:
В С99 можно было, в остальных - нельзя.
0
2718 / 1883 / 558
Регистрация: 05.06.2014
Сообщений: 5,489
17.08.2019, 16:33 3
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Здравствуйте. С какого стандарта в C++ динамический массив можно объявлять, как статический? Т.е. вот так:
Это называется VLA, в C++ поддерживается только как расширение компилятора.
1
1685 / 891 / 364
Регистрация: 11.10.2018
Сообщений: 4,681
17.08.2019, 18:18  [ТС] 4
Т.е. он внутри работает также, как и раньше?
C++
1
2
3
int* K = new int[4];
//...
delete K;
0
2718 / 1883 / 558
Регистрация: 05.06.2014
Сообщений: 5,489
17.08.2019, 18:21 5
Цитата Сообщение от FFPowerMan Посмотреть сообщение
Т.е. он внутри работает также, как и раньше?
Нет, он жрет стек. Соответственно, VLA надо пользоваться аккуратно, так как стек все же имеет размеры порядка мегабайта на все про все. Однако, за эту аккуратность вы получаете более быстрое выделение памяти под массив чем через new.
1
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,043
17.08.2019, 20:48 6
FFPowerMan, привет!
Объявление массива
Croessmah, спасибо за разъяснение.
0
Evg
Эксперт CАвтор FAQ
21191 / 8208 / 632
Регистрация: 30.03.2009
Сообщений: 22,517
Записей в блоге: 30
18.08.2019, 20:19 7

Не по теме:

Цитата Сообщение от oleg-m1973 Посмотреть сообщение
В С99 можно было, в остальных - нельзя
Всё-таки более правильным будет "В C99 и выше можно", в остальных (а среди остальных остаётся только C89) - нельзя. Но это несколько не в тему, т.к. речь идёт о Си++



Цитата Сообщение от FFPowerMan Посмотреть сообщение
Т.е. он внутри работает также, как и раньше?
Для VLA память освобождается автоматически по достижении закрывающей фигурной скобки того лексического блока, в котором расположен VLA. Т.е. это несколько другая конструкция. К тому же VLA размещаются в стеке, о чём коллега упоминал уже в посте #5. И если вдруг выяснится, что в стеке места не достаточно, то это и проконтролировать никак нельзя. Тут уже будет работать в зависимости от реализации: либо упадёт в месте объявления массива, либо программа молча продолжит работать дальше и где-нибудь как-нибудь упадёт при попытке обращения к массиву. Скорее всего из-за такого неконтролируемого поведения его и не стали включать в стандарт C++
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2019, 20:19

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Динамический и статический массив
Подскажите, в чем разница. Имеется статический массив, который просто задается: long mas = { 0 };...

Статический и динамический массив
Помогите пожалуйста. Мучаюсь уже месяцю Даны статический и динамический массивы одинаковой...

Динамический массив в статический
Есть метод, который принимает в качестве параметра статический массив типа double. В этот метод...

Статический в динамический массив
Помогите переписать программу(чтобы использовался динамический массив) Var A:array of integer; ...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с...

создать статический массив строк как статический массив указателей на строки, задание ниже -->
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.