Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Размер статического массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить оригинальные символы http://www.cyberforum.ru/cpp-beginners/thread714710.html
Доброго времени суток. Хочу получить символы, имеющие вид английской буквы с одной и двумя волнами сверху ( из кодировки ASCII, вывод в консоль). Можно ли это как - нибудь осуществить? Спасибо.
C++ Вывести на печать телефонные номера, что начинаются на 22, которые имеют наибольший долг задание: список абонентов телефонной сети:почтовый номер , ФИО , адрес , номер телефона (ввести по шаблону 00-000-000) долг по оплате . Вывести на печать телефонные номера , что начинаются на 22 ,... http://www.cyberforum.ru/cpp-beginners/thread714700.html
Что делает этот код? C++
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { long long n; cin>>n;
Алгоритм Диффи-Хеллмана на эллиптических кривых C++
Здравствуйте , не поможете разобраться с алгоритмом Диффи-Хелмана на эллиптических кривых? Я видимо не совсем правильно понимаю работу алгоритма , так как секретные ключи пользователей А и Б у меня...
C++ Перемножить матрицы http://www.cyberforum.ru/cpp-beginners/thread714688.html
Помогите написать код: :)
C++ Вычисление конечных сумм: Помогите вычислить: :) подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
30.11.2012, 21:58
Можно, но только в Си, а не в Си++, и размер должен быть известен до исполнения любого кода функцией. Это называется variable-length array (VLA). То есть с
C
1
2
3
4
void func(unsigned n)
{
    int array[n];
}
проблем никаких нет. Но вот ввести число и выделить массив в одной и той же функции не получится.

Такое ограничение, потому что память под локальные переменные функции (и статические массивы в том числе) выделяется на стеке, так что их размер должен быть известен заранее перед вызовом функции. Очевидно, то, что там введёт пользователь во время выполнения функции, нельзя узнать перед вызовом функции. Тем не менее, VLA не обязательно создаются на стеке, но это возможный вариант реализации, поэтому на всякий случай такое ограничение.

Ещё раз: это фишка Си. Некоторые компиляторы Си++ могут поддерживать VLA, но стандартом это не требуется и это исключительно произвол gcc их фишечки.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru