|
|
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
подскажите пож-та, как из динамического массива закинуть все в record. В коде ниже на выходе в my бред. Если объявить статичный размер data: array[0..5] of byte, то все OK. Получается - дело в динамическом выделение памяти под массив. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:11 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
xMailer, Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:32 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Может @data[0] поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:32 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Фэйтл ЭраxMailer, Код: pascal 1. Пардон, вот: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:33 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Всё из-за того, что sizeof(tmy) = 8. Надо просто заменить record на packed record. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:42 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Спасибо!!! @data[0] - то, что нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:44 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
ZeroMemory(@my, SizeOf(my)); - лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 15:48 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
xMailerСпасибо!!! @data[0] - то, что нужно Чудаки вы все. Попробуй вместо этого просто data (безо всяческих обкладок.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 16:10 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
закладываться на особенности реализации? а протом проходит дцать лет и начинаются крики "во всех статях написано CopyMemory(@my, ... - но оно ниработает!!!!" P.S. и ты не поверишь, я даже часто пишу @data[Low(data)] После того как несколько раз мозг себе ломал выискивая случайные разрушения памяти после переноса старых программ на нолвый Паскаль/Дельфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 16:31 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Arioch, Какие особенности, какие крики? Я ж говорю, - чудаки. Имя переменной типа массив в обсуждаемом языке всегда было (и будет, аминь) указателем на его первый элемент. Но ты там у себя можешь писать, что хочешь, таки разрешаю, да)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 16:50 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Ну и, как выше уже написали: Код: pascal 1. иначе потом возможны сюрпризы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 16:55 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
надо будет поискать Delphi 1.0, в котором динамических массивов вообще не было как и в турбо-паскале, куски кода которого переобозвали кусками кода Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:33 |
|
||
|
CopyMemory из динамического массива в record
|
|||
|---|---|---|---|
|
#18+
Vlad FИмя переменной типа массив в обсуждаемом языке всегда было (и будет, аминь) указателем на его первый элемент. Delphi XE2type TSta = array[2..3] of byte; TDyn = array of byte; procedure Tst( aStatic: TSta; aDynamic: TDyn; aOpen: array of Byte); var P: pointer; begin p := aStatic; // [DCC Error] Project38.dpr(16): E2010 Incompatible types: 'Pointer' and 'TSta' p := aDynamic; p := aOpen; // [DCC Error] Project38.dpr(18): E2010 Incompatible types: 'Pointer' and 'array of Byte' end; Только в одном из трёх случаев - когда "особенности реализации" такие - "Имя переменной типа массив" может быть присвоено указателю. В двух третях случаев - даже не скомпилируется. И даже один случай из трёх - только потому, что динамический массив - так же как классы, длинные строки, интерфейсы - был реализован как указатель на record. И это я ещё не смотрел что именно присваивается, вопрос был "пкусть не работает, лишь бы хотя как-то скомпилировалось". А если ещё чуть усложнить... type TSta = array[2..3] of array [4..5] of byte; TDyn = array of array of byte; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=80&tid=2039750]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 284ms |

| 0 / 0 |
