C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Частичное обнуление массива  (Прочитано 1462 раз)
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Частичное обнуление массива
« : 01 Ноябрь 2011, 19:08:36 »

Привет всем. В программе есть трехмерный массив байтов:
Код
BYTE Array[5][10][12];

Необходимо обнулить все элементы первой размерности (возможно не так сформулировал). Можно, конечно, сделать это так:
Код
for(int i = 0; i  10; i++) for(int j = 0; j  12; j++) Array[0][i][j] = 0;

Но вопрос такой: правильно ли будет обнуляться то, что мне надо вот таким кодом:
Код
ZeroMemory(&Array[0], 120);
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Частичное обнуление массива
« Ответ #1 : 03 Ноябрь 2011, 06:55:02 »

Пока ждал вашего ответа, протестировал прогу. Вроде все нормально работает. Но вопрос остается открытым (вдруг есть подводные камни, о которых я не знаю...).
Записан
moskk
-Кто же это ходит за мёдом с воздушными шариками?
Участник


Сказали спасибо: +17/-4
Offline

Сообщений: 264

-Я хожу.


Re: Частичное обнуление массива
« Ответ #2 : 03 Ноябрь 2011, 09:47:34 »

по идее в памяти оно лежит так:
Array[0][0][0]Array[0][0][1]Array[0][0][2]...Array[0][0][11]Array[0][1][0]Array[0][1][1]...Array[4][9][11]
то есть элементы меньших значений более "поздней" размерности лежат по меньшим адресам. так что скорее всего вам просто "повезло", и в памяти изначально были нули.
элементы первой размерности лежат не подряд, юзайте циклы или спецсредства.
Записан
d7d1cd
Участник


Сказали спасибо: +59/-24
Offline

Сообщений: 1005


Re: Частичное обнуление массива
« Ответ #3 : 03 Ноябрь 2011, 16:49:26 »

Если элементы в памяти лежат так, как вы говорите, то метод ZeroMemory подходит. Почему нет?
P.S. В массиве изначально не нули...
Записан
moskk
-Кто же это ходит за мёдом с воздушными шариками?
Участник


Сказали спасибо: +17/-4
Offline

Сообщений: 264

-Я хожу.


Re: Частичное обнуление массива
« Ответ #4 : 03 Ноябрь 2011, 20:08:47 »

ээээ... ой. да, затупил я что-то
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.063 секунд. Запросов: 22.