- Код: Выделить всё
Option Explicit
Private Type SomeType
Str As String * 8
Flt As Single
End Type
Private Sub Form_Load()
Dim data(1) As SomeType
Debug.Print Len(data(0)), VarPtr(data(0)), VarPtr(data(1))
End Sub
Выводит
- Код: Выделить всё
12 2067664 2067684
Правильно, размер типа - 12 байт. Но почему между двумя элементами массива дырка аж 20?
Кстати, если заменить Str As String*8 на b(7) As Byte, то между двумя элементами будет 12 байт, как и положено. Откуда лишних 8 байт?