дубликация данных в динамических массивах

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

bormant
С такой, что типов динамических массивов стандатных 1-8 байтных переменных всего несколько штук, а статических массивов таких же переменных можно наопределять триллионы. Но раз халявы нет, то сравнивать можно и через функцию, перебирая по одному элементу - компьютеры у нас сейчас мощные, переберут и не заметят. Собственно, вопрос оптимизации сравнения массивов встал из-за пересылки данных между потоками: лишний раз посылать не желательно, вот для оптимизации и приходится проверять, а надо ли вообще пересылать на данном витке цикла.

А хотя, это идея, для пересылки массивов однобайтовых данных можно использовать строки:)
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

stanilar писал(а):Если динамический массив - это указатель, то для него правильно писать FreeMem.

Динамический массив это не указатель, это динамический массив. Особенности работы с такими массивами описаны в справочной системе, как и другие не менее неочевидные вещи, и их нужно просто знать.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

ger0strat писал(а):Если это вызывает такие негодования, то что мешает перегрузить оператор?


Перегрузить оператор мешает то, что «array of T» — это не один тип, а целое семейство типов, параметризованное типом T. А перегрузка операторов для дженериков — уже нетривиальная задача (лично я не умею и не знаю возможно ли это), да и претензий к дженерикам выше крыши.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Опаньки :shock: А я всю жизнь думал, что массивы тоже copy-on-write :oops:

Хорошо, что я их никогда не копирую. Если у меня где есть массив - это или поле класса, к которому все обращаются через этот класс, или локальная переменная.
Ответить