Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.9.115] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
LenB(V1)=2, LenB(V2)=8(указатель на строку =4байта + его выравнивание по границе=4, итого 8байт). Я копирую 2 байта в struT2, т.е. указатель на строку s1 не перезапишет. Но в реале перезаписывает, я никак не могу понять, откуда берутся доп. нули в хвосте struT1?
|
Сообщ.
#17
,
|
|
|
Цитата BlackSun @ Но в реале перезаписывает, я никак не могу понять, откуда берутся доп. нули в хвосте struT1? Где? Ничего не перезаписывает. |
Сообщ.
#18
,
|
|
|
Ага, причина в постоянной строке в структуре. Таки строка s1 ломается в результате.
Private Type stru1 sFix As String * 10 b1 As Byte b2 As Byte End Type Private Type stru2 sFix As String * 10 b1 As Byte b2 As Byte s1 As String End Type Private Sub Form_Load() Dim V1 As stru1, V2 As stru2 V2.s1 = "123" CopyMemory V2, V1, LenB(V1) Debug.Print LenB(V1), LenB(V2), V2.s1 Unload Me End Sub |