1. один из этих трех массивов
- Код: Выделить всё
Arr(0 To 2, 0 To N, 0 To M) As Variant
Arr(0 To N, 0 To 2, 0 To M) As Variant
Arr(0 To N, 0 To M, 0 To 2) As Variant
Можно или нет представить себе как двухмерный массив, с тремя Page-ми,
т.е. три двухмерных массива расположенный в области памяти один за другим, если да, какой, и нет ли где ни будь готового указателя на эти Pages.
2. Как я понимаю размер двухмерного Variant массива в VB состоит:
4-байта для указателя
8-байта для размера элемента
4-адрес данных (дальше pData)
8-первая размерность
8-Втарая размерность
В самой области, куда указывает pData, для каждого элемента по 16-байт.
Если все правильно, то объясните следующее:
В качестве pData передаю адрес проецируемого Mapping File-а
Как может помещаться Arr(0 To 9, 0 To 24) As Variant массив в файл
у которого dwMaximumSizeLow=1
и как не может помещаться Arr(0 To 9, 0 To 25) As Variant массив в файл
у которого dwMaximumSizeLow=4096 и опять же как может помещатся в dwMaximumSizeLow=4096 + 1
тогда как я подсчитываю для первого массива нужен как минимум
10Х25Х16=4000 байт
а для второго 10Х26Х16=4160 байт