|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Если типизированная -- пользовательского типа -- переменная t1 занимает меньше байт памяти, чем типизированная переменная t2, то при исполнении Код: vbnet 1.
-- не произойдёт ли запись за её (t1) пределы? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 01:28 |
|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Иван FXS, В документации написано, что так делать нельзя, приведет к непредсказуемому поведение: авторWarning Using LSet to copy a variable of one user-defined type into a variable of a different user-defined type is not recommended. Copying data of one data type into space reserved for a different data type can cause unpredictable results. When you copy a variable from one user-defined type to another, the binary data from one variable is copied into the memory space of the other, without regard for the data types specified for the elements. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 11:46 |
|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Eolt, это понятно, но я спрашиваю про другое. Например, если t1 это 3 Integer "поля", а t2 это 4 Integer "поля", то при исполнении LSet t1 = t2 -- будет ли четвёртое (Integer) "поле" t2 записано за пределы t1? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 15:02 |
|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Раз пишут про неопределенное поведение, то да будет записано за пределы t1 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 15:25 |
|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Не произойдет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 22:59 |
|
Зашита ли в LSet защита от выхода за пределы типизированной переменной?
|
|||
---|---|---|---|
#18+
Ну да, ATM-TURBO 2 прав. Если провести эксперимент, то за пределами T1 оказывается мусор, а не 30. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 00:01 |
|
|
start [/forum/topic.php?fid=60&fpage=3&tid=2154772]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 135ms |
0 / 0 |