|
|
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
есть такой код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. в этом случае получится скопировать значения из b в а, а не ссылку на него? Код компилируется :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 20:49:08 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
Да. Любое присвоение массива к переменной вызывает копирование Код: pascal 1. 2. 3. 4. 5. 6. 7. Так же. Можно и в ручную скопировать нужную длину Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 21:03:27 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
Кстати, вызов функции генерирует код лучше Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 21:33:00 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
Для надёжности можно просто Copy или CopyArray. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 09:26:11 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
авторЛюбое присвоение массива к переменной вызывает копирование Очередное сильное и неправильное утверждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 09:27:22 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaon, Что вижу - то и говорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 11:43:01 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaonДля надёжности можно просто Copy или CopyArray. Для аргументов ? А какая там может быть ненадежность ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 11:56:03 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
schi, Для того, что бы не думать, как передано - const, указателем, либо еще как-то. Завтра модификатор кто-то (в том числе автор) поменяет, и всё посыпется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:28:31 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaonschi, Для того, что бы не думать, как передано - const, указателем, либо еще как-то. Завтра модификатор кто-то (в том числе автор) поменяет, и всё посыпется. Извини, не понимаю. Пример был бы уместен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:35:54 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
Топик стартеру: кинь тип FA, а лучше, весь TSomeClass. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:44:11 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
schi, procedure TSomeClass.Proc(b: TStringDynArray); begin FA := B; end; вызывает: call @DynArrayAsg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:47:46 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaonschi, procedure TSomeClass.Proc(b: TStringDynArray); begin FA := B; end; вызывает: call @DynArrayAsg А с const ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:55:59 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
schi, Так я уже писал. Что пока ничего не меняется - то всё хорошо. А завтра поменялось что-то - и всё посыпалось. Причём совершенно не очевидно. Ну а Игорю лишний повод поспорить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 12:58:37 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
C const тоже самое. Да, меня такое поведение тоже раздражает. Лучше всего, что бы TStringDynArray, array of string и TArray<string> был одним, присваеваемым и однозначно работающим типом. Однако это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:01:53 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaonC const тоже самое. Да, меня такое поведение тоже раздражает. Лучше всего, что бы TStringDynArray, array of string и TArray<string> был одним, присваеваемым и однозначно работающим типом. Однако это не так. А у меня пример TC не компилируется :-( FA объявлен как array of string. В примере параметром передается не динамический массив, а открытый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:06:32 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
makhaonC const тоже самое. Да, меня такое поведение тоже раздражает. Лучше всего, что бы TStringDynArray, array of string и TArray<string> был одним, присваеваемым и однозначно работающим типом. Однако это не так. array of string не может быть тем же самым, т.к. это открытый массив, созданный и работающий по другому, в отличии динамических массивов. В общем случае при передаче в функцию открытый массив работает лучше чем динамические массивы. schiА у меня пример TC не компилируется :-( FA объявлен как array of string. В примере параметром передается не динамический массив, а открытый. версию делфи наверное нужно по-новее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:12:55 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
ойойойой, Ну конечно, тип TStringDynArray = array of string должен работать не так как array of string, верим-верим :) И присваиваться не должен. У меня тоже не компилируется, XE6, почему и спрашивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:30:07 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
авторarray of string не может быть тем же самым, т.к. это открытый массив, созданный и работающий по другому, в отличии динамических массивов Если уж придерживаться терминологии - то array of string и есть динамический массив: Код: pascal 1. 2. 3. 4. 5. 6. 7. [dcc32 Error] Unit2.pas(47): E2010 Incompatible types: 'string' and 'Dynamic array' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:35:19 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
arCHi_1887, В коде не динамический, а открытый масcив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:42:52 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
ойойойойверсию делфи наверное нужно по-новее. В 10.1 Berlin тоже не компилируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 13:49:11 |
|
||
|
Копирование динамического массива, переданного как const
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Delphi XE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2017, 14:08:06 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39533988&tid=2041736]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
201ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 523ms |

| 0 / 0 |
