1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Ldnb |
11.05.2010 4:56
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: 0 |
Думал, что, судя по описанию, функция StrCopy делает полноценное копирование, то есть автоматически выделяет память под копию данных. Как оказалось, нет, копируется только указатель, то есть, если после копирования из буферной переменной её значение меняется, то меняется и "скопированная" строчка.
Так как же всё-таки работать с этим странным PChar? |
![]() ![]() |
| volvo |
11.05.2010 13:04
Сообщение
#2
|
|
Гость |
Цитата Так как же всё-таки работать с этим странным PChar? Правильно копировать строку, предварительно прочитав имеющуюся документацию по модулю Stringsvar P, P1: PChar; Цитата Как? С геморроем... |
| TarasBer |
12.05.2010 10:03
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Это к чему было? Вы хотите сказать, что только у меня проблемы с этим типом данных? Что утечки памяти и уязвимости, связанные с этим типом, придумал я? Цитата p2 := strcat(pp, strnew(PChar('константа')); На самом деле, прекрасно прокатывает такой код: p2 := strcat(pp, strnew('const')); Однако, если забыть про strnew, то появляется утечка. Сообщение отредактировано: TarasBer - 12.05.2010 10:20 -------------------- |
Ldnb Как скопировать строку PChar ? 11.05.2010 4:56
TarasBer Перед StrCopy надо заранее выделить память (длина ... 11.05.2010 10:12
Ldnb К сожалению, надо на Турбо Паскале... ;(
Можно м... 11.05.2010 10:32
TarasBer > К сожалению, надо на Турбо Паскале... ;(
Зад... 11.05.2010 10:43
Ldnb Спасибо!
А правильно добавить строку p2 к стр... 11.05.2010 18:17
volvo А как потом освобождать память в таком случае? 11.05.2010 23:09
Ldnb А как правильно? :( Подскажите, пожалуйста.
В общ... 12.05.2010 0:16
volvo Хм... Вот так:
uses strings;
var
s: array[0 .. ... 12.05.2010 1:18
Ldnb Так...значит, всё-таки операция strcat(pp, strnew(... 12.05.2010 1:37
volvo Так не пойдет, будет утечка памяти.
uses strings;... 12.05.2010 11:58
TarasBer
Так не пойдет, будет утечка памяти.
Что я делаю... 12.05.2010 12:56
Ldnb :blink: :blink: :blink: :blink: :blink: :blin... 13.05.2010 19:41
volvo Ты читать умеешь?
Все, дальше можешь ничего не дел... 13.05.2010 21:12
Ldnb За поправление спасибо, учтём, но меня интересует ... 14.05.2010 0:11
Ldnb Эх... видимо нормально работать с PChar всё-таки н... 15.05.2010 8:06![]() ![]() |
|
Текстовая версия | 9.12.2025 17:57 |