Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для bambino
218 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229

GCC, статичиские масивы, С++

19.08.2011, 12:49. Показов 3499. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Такой вопрос: как сделать, что бы gcc не компилил такой код:
C++
1
2
3
int n;
std::cin >> n;
int a[n];
?
8.3.4 Arrays
In a declaration T D where D has the form
D1 [constant-expression]
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.08.2011, 12:49
Ответы с готовыми решениями:

GCC Сборка 32 разрядной версии GCC 64 разрядным GCC
Доброго времени суток. Возникла необходимость под 32х разрядный Linux, собрать 32 разрядный GCC. Но на моей основной машине установлена 64...

Массив: все отрицательные элементы; все элементы, что не превышают числа 100
Задано масив. Написать: а) все отрицательные элементы; б) все элементы, что не превышают числа 100.

масивы
переписатьт отрицательные элементы масивы а(n) в В(к) и определить его размер.результат распечатать в виде число элементов исходный...

27
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
19.08.2011, 13:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от bambino Посмотреть сообщение
Пункт в драфте, где такое сказано ?
Я просто еще не знаю, но предположил, что МОЖЕТ соответствовать.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.08.2011, 13:24
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Я просто еще не знаю, но предположил, что МОЖЕТ соответствовать.
gcc с -pedantic выдает
warning: ISO C++ forbids variable length array
0
 Аватар для bambino
218 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
19.08.2011, 13:33  [ТС]
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Я просто еще не знаю, но предположил, что МОЖЕТ соответствовать.
Может, но только в таком случае:
C++
1
2
3
constexpr int n() {return 5;}
//main
int a[n()];
Добавлено через 8 минут
ValeryLaptev, Почитал драфт, даже так можно подмутить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
struct Length
{
    explicit constexpr Length(int i = 0) : val(i) {}
    constexpr int get_l() const {return val;}
private:
    int val;
};
 
int main()
{
    int a[Length(5).get_l()];
    return 0;
}
Чтобы задавать размер, не пхая руки в интерфейс класса.
3
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
19.08.2011, 14:01
Стало сильно интересно. Решил маны почитать.
Вот что говориться здесь:
Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++
Т.е. с расширением от GNU g++ будет компилировать без проблем. Без него (-pedantic-errors) - не получится.
Также стандарт C99 (это к языку си) говорит, что VLA - это нормально. C90 без расширений не допускает VLA.
2
 Аватар для bambino
218 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
19.08.2011, 14:10  [ТС]
Евгений М., Да, спасибо, уже понятно, постами выше обяснили.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.08.2011, 18:44
Я уже как-то раз поднимал подобную тему. В ней порешили, что программа бабахает массив на максимально возможное кол-во элементов.
Но самое интересное было не это. Если вводить числа от 0 до -7 (по крайней мере на моей сборке компьютера) то код выполнялся без проблем, массив как бы "существовал". Но стоило ввести -8 или меньше - вылетал. Почему - я так и не понял.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
19.08.2011, 18:53
Еще будет зависеть от того, как создан массив: глобально или локально. Если локально, то это automatic storage и обычно размещается в стеке. А размер стека ограничен.
А глобальный или динамический массив обычно ограничиваются только размером виртуальной памяти.
0
 Аватар для TheAthlete
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
21.08.2011, 09:53
Привет! Посмотри сюда Какому стандарту С++ соответствует minGW?

Я тоже такую-же тему поднимал

Добавлено через 1 минуту
А если хочется подробностей по этой теме, то советую книгу почитать "Гриффитс Артур. GCC. Настольная книга пользователей, программистов и системных администраторов".

Там все написано и про расширения в том числе
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.08.2011, 09:53

масивы
дана прямоугольная матрица F подсчитать средние арифметическое отрицательных элементов в матрице. прошу помочь, очень срочно.

С++ Масивы
Помогите написать 3 программы по этим заданиям в С++! В одномерном массиве, который состоит из n действительных элементов, вычислить: ...

Масивы
Помогите пожалуйста...Голову уже как часа 2 ломаю((( Программа должна осуществлять: 1)Ввод с клавы первых эл-в векторов 1х7 и 7х1 ...

С++ Масивы
Задание такое: В одномерном массиве, который состоит из n действительных элементов, вычислить: сумму элементов массива, расположенных...

Масивы
Нужны любые ссылки или учебники по работе с массивами.Хто знает дайте пожалуйста)))


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru