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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
#1

Поместить данные в динамический массив - C++

26.11.2014, 14:27. Просмотров 290. Ответов 13
Метки нет (Все метки)

Как запомнить char динамический массив при описе?
C++ (Qt)
1
2
3
4
5
6
7
8
9
char **map = new char * [sizey];
for (int i=0;i<sizey;i++)
{
map[i]=new char [sizex];
}
map [sizey][sizex]=
    {
 
};
Пробовал таким образом, но не получилось, подскажите мне.
Ошибка:
синтаксическая ошибка: отсутствие ";" перед "}"
синтаксическая ошибка: отсутствие ";" перед ","
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 14:27     Поместить данные в динамический массив
Посмотрите здесь:

Считать строки файла и поместить в динамический массив строк - C++
Ребята помогите. Нужно считать с файла, в котором 1 строка - 1 слово, строки и поместить их в динамический массив строк типа char...

Возможно ли объекты и потомки этих объектов поместить в один и тот же динамический массив? - C++
У меня есть объекты, очень сложные объекты. Они постоянно относятся то одному то другому массива, они постоянно выполняют большое...

Поместить все символы, находящиеся в стеке, в динамический массив, вывести на экран содержимое массива - C++
Помогите пожалуйста :wall: 1) Построить стек символов. 2) Вывести на экран содержимое стека. 3) Ввести с клавиатуры слово и вывести...

Как создать класс контейнер-динамический массив и поместить туда объекты других классов? - C++
Какой тип массива использовать тип базового класса или наследников?

Парсер текста: прочитать файл и поместить данные в массив - C++
Есть файл map.txt А там в строчку написаны циферки с пробелами 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 12 12 12 0 0 ...

Как ввести данные в динамический массив структур? - C++
Подскажите пожалуйста, можно ли вводить данные в динамический массив структур c помощью cin &gt;&gt; следующим образом: #include &lt;iostream&gt; ...

Считать данные из файла в динамический массив соответствующего типа - C++
Здравствуйте. Тема динамические структуры. Считать данные из файла в динамический массив соответствующего типа. 1) В файле целых...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 14:31     Поместить данные в динамический массив #2
C++
1
2
3
for (int i=0; i < sizey; i++)
    for (int j=0; j < sizex; j++)
        map[i][j] = значение;
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
26.11.2014, 14:33  [ТС]     Поместить данные в динамический массив #3
Смотрите, мне надо заполнить его таким образом как на верху я описал, чтоб 1,0 и т.д
Потому что дальше будет цикл который будет заполнять.
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 14:34     Поместить данные в динамический массив #4
Цитата Сообщение от morrison Посмотреть сообщение
мне надо заполнить его таким образом как на верху я описал, чтоб 1,0 и т.д
где??
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
26.11.2014, 14:35  [ТС]     Поместить данные в динамический массив #5
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
map [sizey][sizex]=
    {
        {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},           
        {1,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1},
        {1,0,1,0,6,0,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1},
        {1,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        {1,0,0,1,1,1,0,0,0,0,0,6,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1},      
        {1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1},
        {1,1,1,1,0,0,0,1,0,1,3,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1},
        {1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1},
        {1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1},
        {1,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1},
        {1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1},
        {1,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1},
        {1,0,0,1,0,1,1,0,0,6,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1},
        {1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,1},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1}, 
    };
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 14:45     Поместить данные в динамический массив #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
std::vector<std::vector<int>> map = {
        {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
        {1,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1},
        {1,0,1,0,6,0,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1},
        {1,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        {1,0,0,1,1,1,0,0,0,0,0,6,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1},
        {1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1},
        {1,1,1,1,0,0,0,1,0,1,3,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1},
        {1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1},
        {1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1},
        {1,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1},
        {1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1},
        {1,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1},
        {1,0,0,1,0,1,1,0,0,6,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1},
        {1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,1},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1},
    };
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
26.11.2014, 14:54  [ТС]     Поместить данные в динамический массив #7
Теперь вот такие ошибки, подчеркнуло { которая после map = {

C
1
2
3
4
5
6
7
8
9
10
11
12
13
error C2040: map: "std::vector<_Ty>" отличается по уровням косвенного обращения от "char **"
1>          with
1>          [
1>              _Ty=std::vector<int>
1>          ]
 error C2552: map: инициализация не агрегированных данных с помощью списка инициализации не допускается
1>          std::vector<_Ty>: типы с базовым классом не являются агрегатными
1>          with
1>          [
1>              _Ty=std::vector<int>
1>          ]
error C2078: слишком много инициализаторов
 fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 15:06     Поместить данные в динамический массив #8
Я использовал список инициализации из С++11. Если ваш компилятор не поддерживает данный стандарт(конкретно этот элемент стандарта) - код не будет работать.
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
26.11.2014, 15:07  [ТС]     Поместить данные в динамический массив #9
По другому нельзя сделать?
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 15:41     Поместить данные в динамический массив #10
Цитата Сообщение от morrison Посмотреть сообщение
По другому нельзя сделать?
Учитывая, что список инициализации работал в С++98 только для массивов, а массив нескольких размерностей без явного указания границ не задашь - то никак.

Добавлено через 3 минуты
Можно только так хардкодить размеры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int map[20][28] = {
        {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
        {1,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1},
        {1,0,1,0,6,0,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1},
        {1,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1},
        {1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1},
        {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        {1,0,0,1,1,1,0,0,0,0,0,6,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1},
        {1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1},
        {1,1,1,1,0,0,0,1,0,1,3,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1},
        {1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1},
        {1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1},
        {1,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1},
        {1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1},
        {1,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1},
        {1,0,0,1,0,1,1,0,0,6,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1},
        {1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,1},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1},
    };
Понятно, что следить за всем придётся в таком случае самим.
demmax2004
58 / 136 / 35
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
26.11.2014, 15:51     Поместить данные в динамический массив #11
map [sizey][sizex]=
такое только в Си проканает
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
26.11.2014, 15:56     Поместить данные в динамический массив #12
Цитата Сообщение от morrison Посмотреть сообщение
map [sizey][sizex]
это как? выход за пределы?
Цитата Сообщение от morrison Посмотреть сообщение
map [sizey][sizex]=
* * {
};
а в скобках то что хотел написать?
MrGluck
Модератор
Эксперт CЭксперт С++
7167 / 4333 / 633
Регистрация: 29.11.2010
Сообщений: 11,777
26.11.2014, 16:00     Поместить данные в динамический массив #13
Цитата Сообщение от demmax2004 Посмотреть сообщение
map [sizey][sizex]=
такое только в Си проканает
если sizey и sizex константы времени компиляции - проканает где угодно. Вы могли иметь в виду VLA, но это поддерживается лишь в С99.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 16:28     Поместить данные в динамический массив
Еще ссылки по теме:

Динамический массив структур. Почему данные доступны после выполнения операции delete [] - C++
Всем привет! Выполнил вот такое задание. После того как вывелись данные трех структур, очищаю выделенную область памяти оператором delete...

Поместить данные в приватную секцию класса (модефикаторы доступа) - C++
Добрый вечер, ниже реализована программа по обработке файла данных &quot; Репертуар кинотеатров&quot; в котором указаны название кинотеатра и...

Как правильно извлечь данные из вектора и поместить в обект CStepMove - C++
Дорого времени суток. В общем у меня такая проблемма. Есть родительский класс CStep. У него есть наследник CStepMove. Создаю вектор: ...

Поместить строку в массив - C++
Всем доброго время суток! Помогите пожалуйста разобраться с проблемой. Мне нужно поместить строку содержащуюся в переменной в массив....

Поместить элементы в числовой массив - C++
Здравствуйте! В С/С++ я новичек; Раньше изучал командную строку виндовс, потом питон (до сих пор учу) а еще начал С и С++ В общем...


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

Или воспользуйтесь поиском по форуму:
morrison
2 / 2 / 2
Регистрация: 05.06.2014
Сообщений: 48
26.11.2014, 16:28  [ТС]     Поместить данные в динамический массив #14
Понял, спасибо
Yandex
Объявления
26.11.2014, 16:28     Поместить данные в динамический массив
Ответ Создать тему
Опции темы

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