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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ киньте задания по лабам и курсачам где-то для 1-2 курса, заранее спасибо) http://www.cyberforum.ru/cpp-beginners/thread897318.html
по с++, delphi, c# хочу поучить пока время есть
C++ Разложить время по компонентам Возможно ли получить, скажем, текущую секунду системного времени, используя std::chrono, и не опускаясь при этом до уровня time_t? http://www.cyberforum.ru/cpp-beginners/thread897313.html
C++ В заданном предложении удалить самое короткое слово
4. В заданном предложении удалить самое короткое слово. Считать, что слова в тексте отделены друг от друга одним пробелом.
C++ Работа с прерываниями
Доброе время суток. Возник вопрос, недавно я начал учиться работать с прерываниями в DOS, но до конца еще не разобрался, а сейчас пишу программу для поиска файлов в каталоге. Но я не знаю как передать параметру DS:DX строку, т. к. при передачи (DS:DX=text;) возникает ошибка(undefinded symbol 'DX') ниже приведена справка по прерыванию Поиск в каталогах Часто перед программистом стоит задача...
C++ Вывести значение первого из элементов массива A (Аk), которые удовлетворяют неравенству Аk < A10 http://www.cyberforum.ru/cpp-beginners/thread897286.html
Данный массив А ненулевых целых чисел размера 10. Вывести значение первого из тех его элементов АК, которые удовлетворяют неравенство АК <A10.Якщо таких элементов нет, то вывести 0.
C++ Сочетание цыкла и разветвления Нужно изменить первый отрицательный елемент сумой парных елементов которые размещенны после него подробнее

Показать сообщение отдельно
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
11.06.2014, 11:54     Как одномерный массив представить двумерным?
Цитата Сообщение от Pro_ha Посмотреть сообщение
DWORD *pixels= &img[0];
почему DWORD???
если работаешь с виндой то есть COLORREF
что ты дальше делаешь с картинкой?
есть тупой вариант создать двумерный массив и скопировать в него
есть вариант по типу Croessmah, но без структуры
типа
C++
1
2
3
4
inline COLORREF getPixel(COLORREF * arr,int x,int y)
  {
    return arr[x+y*w];
  }
можно и со структурой(классом)но заинлайнить функцию

если боишься умножения то зря
в любом случае оно будет присутствовать
если объявишь массив так
C++
1
int  a[10][10];
то в памяти он будет лежать одномерным и обращения типа
C++
1
b=a[5][5];
на уровне ассемблера будут выглядеть так
b=*(a+(5+5*10));
единственно что если ширина кратна степени 2 то умножение могут заменится сдвигом
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru