Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.053 c