Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Leo008
0 / 0 / 0
Регистрация: 10.11.2014
Сообщений: 4
1

Добрый вечер! Передача в функцию константного значения и обьявление им массива

20.11.2014, 17:35. Просмотров 860. Ответов 4
Метки нет (Все метки)

Вот у меня есть функция с объявленым массивом внутри:
f(const int &C) {
int mass[C];
}

Где тут ошибка ? Ведь размер массива объявляется константным значением, почему же тогда компилятор выдает ошибку ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 17:35
Ответы с готовыми решениями:

Добрый вечер! если онлайн практика по С++
Всем добрый вечер учусь на курсах программирования все хорошо, но мало...

Добрый вечер. Ребят, нужен ваш совет
Добрый вечер.Ребят,посоветуйте пожалуйста, хочу начать учить C++ по книге "ЯЗЫК...

Передача значения массива в основную функцию
Программа написана через задницу, но прошу помочь лишь с одной ошибкой:...

Добрый вечер, прошу помощи по строкам и лексемам (strtok)
суть в чем... Строка будет скопирована из формул в экселе. По типу...

Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа?
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от...

4
Croessmah
++Ͻ
14615 / 8367 / 1578
Регистрация: 27.09.2012
Сообщений: 20,563
Записей в блоге: 2
Завершенные тесты: 1
20.11.2014, 17:38 2
Цитата Сообщение от Leo008 Посмотреть сообщение
едь размер массива объявляется константным значением, почему же тогда компилятор выдает ошибку ??
птому что размер массива должен быть константой времени компиляции
1
Гоблин-инженер
113 / 110 / 65
Регистрация: 18.09.2014
Сообщений: 337
20.11.2014, 17:39 3
Лучший ответ Сообщение было отмечено Leo008 как решение

Решение

Leo008, подразумевается, что "константное" в этом контексте имеется в виду "известное на этапе компиляции" (если ошибаюсь, поправьте). Если вы хотите создать массив с нужным размером, можете воспользоваться динамическими массивами. А можете использовать gcc, там можно объявлять статические массивы переменной длины
1
MrGluck
Модератор
Эксперт CЭксперт С++
8086 / 4939 / 1431
Регистрация: 29.11.2010
Сообщений: 13,395
20.11.2014, 19:21 4
это ещё называется VLA, входит в стандарт С99, в С++ так и не прижился( Но поддерживается gcc
1
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4608 / 2422 / 674
Регистрация: 18.10.2014
Сообщений: 4,135
20.11.2014, 21:14 5
Лучший ответ Сообщение было отмечено Leo008 как решение

Решение

Цитата Сообщение от Leo008 Посмотреть сообщение
Где тут ошибка ?
Размер массива в С++ должен задаваться так называемым Integral Constant Expression (целочисленным константным выражением - ЦКВ). Требование ЦКВ - существенно более сильное требование, чем просто "const". Это фактически требование быть константой времени компиляции. Далеко не каждый "const" является ЦКВ. Ваш - не является.

Добавлено через 3 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
это ещё называется VLA, входит в стандарт С99, в С++ так и не прижился( Но поддерживается gcc
Что интересно, С11 сделал, в некотором смысле, шаг назад о VLA. От реализаций языка С больше не требуется безусловной поддержки VLA. Реализации, не поддерживающие VLA, должны определять макро __STDC_NO_VLA__ со значением 1.
2
20.11.2014, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 21:14

Добрый вечер, как сделать задержку экрана, после введенных цифр?
#include "StdAfx.h" #include <stdio.h> void pr1() { int a,b,c,d; ...

Добрый вечер! При отладки следующая ошибка (вложение). Как исправить? VS2015
#define _CRT_SECURE_NO_WARNINGS #include <locale.h> #include <stdio.h>...

Изменения константного значения
Всем привет, вопрос такой. Пытаюсь разобраться с приведением типов, в частности...


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

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

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