Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Qwoort
0 / 0 / 0
Регистрация: 04.06.2009
Сообщений: 49

Выделение памяти для массива

24.10.2013, 01:36. Показов 1136. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу такой код:

C++
1
2
3
4
int main()
{
    int* arr1 = new int[2];
}
Всё норм.

Теперь такой:

C++
1
2
3
4
int main()
{
    int** arr1 = new int[2][2];
}
Вылазит ошибка:
error C2440: инициализация: невозможно преобразовать "int (*)[2]" в "int **.

Объясните плз, что не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2013, 01:36
Ответы с готовыми решениями:

Выделение памяти для массива через функцию и использование этого массива
Я определяю свою структуру, создаю динамический массив, где будут храниться элементы этой структуры. Есть функция которая выделяет память,...

Выделение памяти для массива
верно ли выделил память для массива если нет поправьте, заранее спасибо) class type { private: int ***p; int x, y, z; public: ...

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

5
15 / 15 / 7
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 01:40
C++
1
2
int **matrix = new int *[x];// int - тип элементов матрицы, **matrix - указатель на указатель
// new - ключевое слово, которое выделяет память в куче под x элементов типа int
1
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.10.2013, 01:42
new int[2][2] - тип выражения - укзататель на int[2] (указатель на массив интов (размер массива - 2) ).
указатель на массив интов - не то же самое, что и указатель на указатель на инт. поэтому одно нельзя присвоить другому.
0
 Аватар для Qwoort
0 / 0 / 0
Регистрация: 04.06.2009
Сообщений: 49
24.10.2013, 01:58  [ТС]
Всё, разобрался, теперь другая проблема. Как инициализировать массив?
Пишу код:
C++
1
2
3
4
5
6
7
8
9
int main()
{
    
    int** pole = (int**)new int[20][14];
    int*** fig = (int***)new int[2][4][2];
 
    fig = {{{0,0},{1,0},{1,1},{2,0}},                    
           {{0,1},{1,0},{1,1},{2,0}}};
}
Ошибка в строках 7-8. Код не работает.

Добавлено через 7 минут
Так же VS выводит сообщение при наведении на первую фигурную скобку: "требуется выражение".
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.10.2013, 02:06
то, что вы сделали - херня.
лучшее решение - написать класс для работы с с многомерными массивами.
возможно еще более лучшее и простое - использовать вектора:
C++
1
2
3
4
5
6
typedef std::vector<int> Array1D;
typedef std::vector<Array1D> Array2D;
...
 
прокатит ли инициализация скобками - хз. моя студия их пока не умеет.
Array2D arr2d(2, Array1D(10, 0)); // массив из двух Array1D, в каждом из которых по 10 нулей.
0
 Аватар для Qwoort
0 / 0 / 0
Регистрация: 04.06.2009
Сообщений: 49
24.10.2013, 02:23  [ТС]
Я все же хотел бы использовать массивы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2013, 02:23
Помогаю со студенческими работами здесь

выделение памяти для массива
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; int main() { const int maxNumber=100; ...

Выделение памяти для массива
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { int *dane; int i;

Выделение памяти для массива в стеке
Правильно ли так выделять память? в gss работает в vs нет.тут память получается на стеки выделяется? cin &gt;&gt; n; int arr;

Динамическое выделение памяти для массива
Не могу разобраться, почему программа вызывает точку остановы после выбора действия в функции, причем не показывает, где. Она происходит...

Выделение памяти для двухмерного массива
Здрасьте! Есть следующий код: float **Matrix = new float*; for(int i = 0; i&lt;SizeOfMatrix;i++) { ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru