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

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

19.08.2011, 12:49. Показов 3305. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru