Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 39
1

Как одномерный массив представить двумерным?

10.06.2013, 13:22. Показов 3837. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я загрузил изображение. И есть указатель на его однобайтные пиксели: BYTE *pixels;
Пиксель [5,8] считываю так: pixels[5*Width+8];
А как сделать, чтоб pixels[5,8] ?

Пробую через другой указатель:
BYTE *array[Width][Height]=pixels;
Компилятор ругается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2013, 13:22
Ответы с готовыми решениями:

Как представить многомерный массив в одномерный?
Задана матрица размерностью h*w. Как представить многомерный массив в одномерный? Напишите...

Как представить пятимерный массив?
"Одномерный массив можно представлять себе как строку данных, двумерный массив — как таблицу...

Как представить массив в привате
При создание класса там есть паблик и приват. Мне нужно как-то обозначить что массив в привате...

Представить строку как массив чисел
string a = "123"; Console.WriteLine(Convert.ToInt32(a)); Программа показывает: 123...

23
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
11.06.2014, 17:21 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от ValeryS Посмотреть сообщение
как например получить элемент 0,0 и сравнить его с 0,1?
А в чем проблема имея строку получить доступ к ее элементу?:

C
1
img_data_rows[0][0] == img_data_rows[0][1]
0
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 39
12.06.2014, 04:53  [ТС] 22
Цитата Сообщение от ValeryS Посмотреть сообщение
но я никак не могу представить как это сделать
Вот мой вариант (не проверял):
C++ (Qt)
1
2
3
4
5
6
7
8
BYTE ar1D[6]={1,2,3, 1,2,3}, **ar2D;
int width=3,height=2;
 
ar2D=new BYTE*[height];
for(int y=0;y<height;y++)ar2D[y]=&ar1D[y*width];
BYTE color=ar2D[1][2]; //<-- Чего и требовалось добиться.
 
delete ar2D; //<-- без []
Добавлено через 6 минут
Вот только не уверен на счет delete ar2D. Правильно ли удаляю массив указателей.
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
12.06.2014, 05:21 23
Цитата Сообщение от Pro_ha Посмотреть сообщение
Правильно ли удаляю массив указателей.
удаление массива - delete [].
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
12.06.2014, 07:03 24
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
А в чем проблема имея строку получить доступ к ее элементу?:
ни в чем
простоя ступил
Цитата Сообщение от Pro_ha Посмотреть сообщение
Вот мой вариант (не проверял):
а лучше проверить, а еще лучше проанализировать ассемблерные листинги
по моему мнению, в этом варианте мы теряем и в памяти ( лишняя память под массив указателей) и в скорости
( сначала идет выбор указателя потом по этому указателю рассчитывается ячейка)
и это вместо простого умножения
0
12.06.2014, 07:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2014, 07:03
Помогаю со студенческими работами здесь

Представить трехмерный массив как двумерный
Дан массив АЖ 3 размерности, каждый срез его это матрица, 2х мерный массив. Нужно его преобразовать...

Представить слово как массив букв
Нужно считать слова из файла и каждое слово представить как массив букв, что бы потом можно было...

Как представить массив состоящий из дробей ?
и потом нужно максимальную дробь найти в этом массиве

Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в одномерный массив В все нечетные числа
У меня есть задание: Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru