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

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

Войти
Регистрация
Восстановить пароль
 
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
#1

new с размещением и двумерный массив - C++

03.11.2013, 11:58. Просмотров 318. Ответов 7
Метки нет (Все метки)

Подскажите, как с помощью new с размещением создать двумерный массив?
С одномерным мне все понятно

C++
1
2
3
4
5
6
7
8
9
10
#include <new>
 
char buffer[512]
 
int main()
{
    double* pd;
    pd = new (buffer) double[5];
    return 0;
}
А вот как с двумерным? Пробую так, но у меня segmentation fault

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <new>
using namespace std;
 
const int N = 5;
const int BUF = 512;
char buffer[BUF];
 
int main()
{
    int** pp;
    pp = new (buffer) int*[N];
    for (int i = 0; i < N; i++)
        pp[i] = new (buffer) int[N];
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            pp[i][j] = 1;
            cout << pp[i][j] << ' ';
        }
        cout << endl;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос new с размещением и двумерный массив (C++):

Как можно вложить двумерный массив в двумерный? - C++
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы размерностью КxК... Подскажите (желательно с...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Операция new с размещением - C++
проблема:Во второй элемент структуры данные не передаются, почему? Стоит отметить, что, если использовать просто new без размещения, то все...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: Как можно задать и вывести симметричный двумерный массив? - C++
как можно задать и вывести симметричный массив

Чем отличаются двумерный символьный массив и массив указателей на строки - C++
Двумерный символьный массив и массив указателей на строки. Собственно чем они отличаются? Заранее спасибо.

7
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
03.11.2013, 12:45 #2
Зачем buffer в 12-й и 14-й строках? Твой двумерный массив - это pp.
0
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
03.11.2013, 12:49  [ТС] #3
Цитата Сообщение от castaway Посмотреть сообщение
Зачем buffer в 12-й и 14-й строках? Твой двумерный массив - это pp.
Я прекрасно это понял
Но разве нельзя "положить" двумерный массив в buffer, как это было сделано с одномерным?
Или я чего - то недопонял?
0
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
03.11.2013, 12:52 #4
d1skort, с чего ты взял, что в скобках указывается массив, в который надо что-то положить..?
0
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
03.11.2013, 12:54  [ТС] #5
О, я понял, зря тему создавал.
Двумерный массив - это массив указателей на одномерные массивы.
Поэтому в строке 14 нельзя использовать тот же buffer.
Создал второй buffer - все получилось.

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
d1skort, с чего ты взял, что в скобках указывается массив, в который надо что-то положить..?
Я положить взял в кавычки. Я знаю что тут указывается адрес используемого блока.
0
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
03.11.2013, 12:56 #6
Цитата Сообщение от d1skort Посмотреть сообщение
Я положить взял в кавычки.
Что, простите?
0
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
03.11.2013, 12:58  [ТС] #7
Цитата Сообщение от castaway Посмотреть сообщение
Что, простите?
Я про мое сообщение выше.

Но разве нельзя "положить"
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
03.11.2013, 13:01 #8
Двумерный массив - это массив указателей на одномерные массивы.
По сути это не двумерный массив, а именно массив указателей на массивы; двумерный будет
C++
1
int (*pp)[N] = new (buffer) int[N][N];
вторая размерность - константа.
2
03.11.2013, 13:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 13:01
Привет! Вот еще темы с ответами:

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив - C++
Дан двумерный массив размерностью 4*5, заполненный целыми числами с клавиатуры. Сформировать одномерный массив каждый элемент которого...

Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива - C++
Дан двумерный массив , создать другой массив ,строками которого будут диагонали первого массива, решить с помощью классов . Класс...

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю. - C++
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного массива, расположенных под побочной...


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

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

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