Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,054
1

Объявление массива

27.04.2019, 08:14. Показов 1489. Ответов 5
Метки нет (Все метки)

Всем привет!
Я знаю следующие способы объявить массив
C++
1
2
3
4
5
6
//Статический
int a[20];
//Динамический
size_t n;
cin >> n;
int *b = new int[n];
Я встретил следующее объявление массива
C++
1
2
3
size_t n;
cin >> n;
int c[n] = { 0 };
Не понятно, какой это массив: динамический или статический.
Объясните что это за конструкция и где выделяется память в стеке или в куче под c ?
Спасибо за ответы!
2
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2019, 08:14
Ответы с готовыми решениями:

объявление массива
int N = 10; int mas = {5,8,2,0,6,3,8,2,7,9}; По чему так нельзя, подчеркивает masN]?

Объявление массива
Есть два файла первый с функцией main() main.cpp #include <iostream> #include <string>...

объявление массива
Можно ли так объявлять массив? Если да, то в чем отличие? ... int b=5; int a; ...

Объявление массива
Всем добрый день, очень нужна помощь. Вопрос собственно такой: Объявляется объект class...

5
Don't worry, be happy
17172 / 10055 / 1935
Регистрация: 27.09.2012
Сообщений: 25,048
Записей в блоге: 1
27.04.2019, 08:22 2
В языке C++ так делать нельзя. Это расширение компилятора.
1
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,054
27.04.2019, 08:28  [ТС] 3
Croessmah, спасибо за ответ!
Цитата Сообщение от Croessmah Посмотреть сообщение
Это расширение компилятора
Что именно и как?
Опишите подробней что это.

Не по теме:


Я тоже думаю, что так нельзя. Это знакомого моего в школе так учат делать. Я в шоке от этого.

0
Don't worry, be happy
17172 / 10055 / 1935
Регистрация: 27.09.2012
Сообщений: 25,048
Записей в блоге: 1
27.04.2019, 08:33 4
Лучший ответ Сообщение было отмечено SomniPhobia как решение

Решение

SomniPhobia, это
C++
1
2
3
size_t n;
cin >> n;
int c[n] = { 0 };
расширение VLA.
1
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,054
27.04.2019, 18:03  [ТС] 5
Цитата Сообщение от Croessmah Посмотреть сообщение
В языке C++ так делать нельзя.
Почему? Я почитал информацию по VLA и не понял, почему нельзя, а интересно.
0
Don't worry, be happy
17172 / 10055 / 1935
Регистрация: 27.09.2012
Сообщений: 25,048
Записей в блоге: 1
27.04.2019, 18:54 6
SomniPhobia, потому что такого функционала нет в C++.
Компилятор это предоставляет в качестве расширения.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2019, 18:54

Объявление двумерного массива
Как мне известно двумерный массив это массив массивов. Как мне записать в массив (mass) с индексом...

Объявление большого массива в C++
Здравствуйте. Не могу разрешить такую задачу: нужен массив int a;, при выполнении выдается...

Объявление двумерного массива
Помогите пожалуйста, я никак не могу понять. Исправьте Почему выводится массив как 777 888 999 ? ...

Объявление двумерного массива
Здравствуйте! Как объявить двумерный массив как public , я имею ввиду что например класс или...


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

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

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