Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

SetLength или присваивание?   Найти похожие ветки 

 
push eax   (2006-12-09 14:55) [0]

Есть такая функция:
[code]
function ParseText(Value: string): string;
begin
 // выделение под Result
 for i := 0 to Length(Value) -1 do
 Result[i] := Value[i]
end;
[/code]

Я видел что под Result выделяют память как SetLength(Result, Length(Value)) так и просто приравниванием к оригиналу Result := Value. Конечно результат не более оригинала. Это одинаково хорошо?


 
Джо ©   (2006-12-09 15:02) [1]

> Это одинаково хорошо?

А зависимости от ситуации.

Обрати внимание:
for i := 1 to Length(Value) do

Назначение кода совсем непонятно :)


 
Anatoly Podgoretsky ©   (2006-12-09 16:03) [2]

> push eax  (09.12.2006 14:55:00)  [0]

Результаты разные, в первом случае уникальная строка, а во втором побочное явление изменение как результата так и оригинала.

Result[i] := Value[i] не изменит счетчик ссылок


 
Loginov Dmitry ©   (2006-12-10 10:16) [3]

> Anatoly Podgoretsky ©   (09.12.06 16:03)


Точно ?!


 
Loginov Dmitry ©   (2006-12-10 10:26) [4]

Чтобы убедиться в неправильности [2] провел несколько тестов. Выяснилось, что Result[i] := Value[i] всеж-таки делает изменяемую строку уникальной, и никакого побочноя явления не происходит.



Страницы: 1 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.051 c
1-1163459204
Morrison
2006-11-14 02:06
2006.12.31
Кто знаком с KAZip? Не получаются элементарные вещи... :(


9-1137539317
grouzd[E]v
2006-01-18 02:08
2006.12.31
Scroller Alive! Please test =)


2-1165837189
YuMB
2006-12-11 14:39
2006.12.31
Как программно выключить компьютер?


15-1165564392
vajo
2006-12-08 10:53
2006.12.31
Американцы собираются на луну в 20году


15-1165946715
GanibalLector
2006-12-12 21:05
2006.12.31
Контр.сумма по модулю 2