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

start [/forum/topic.php?fid=58&mobile=1&tid=2041736]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 476ms |

| 0 / 0 |
