1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Ldnb |
11.05.2010 4:56
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: 0 |
Думал, что, судя по описанию, функция StrCopy делает полноценное копирование, то есть автоматически выделяет память под копию данных. Как оказалось, нет, копируется только указатель, то есть, если после копирования из буферной переменной её значение меняется, то меняется и "скопированная" строчка.
Так как же всё-таки работать с этим странным PChar? |
![]() ![]() |
| Ldnb |
13.05.2010 19:41
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: 0 |
Бился, бился с отладкой программы, переделывал и так и этак, пока не локализовал причину... Если коротко, то причина вот в чём: {$X+}
Почему это происходит???? Нет, то есть вроде как приблизительно понятно, почему, но ЭТО ВООБЩЕ НОРМАЛЬНО??? И как это обойти? {вместо строчки StrCat(testArr[0], StrNew(testArr[1])); можно вставить StrCat(testArr[0], StrNew(PChar('abcdefgh'))); результат не изменится} |
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
volvo Правильно копировать строку, предварительно прочит... 11.05.2010 13:04
TarasBer
:dry: "Плохому танцору... " (С) Народн... 12.05.2010 10:03
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
volvo Ты читать умеешь?
Все, дальше можешь ничего не дел... 13.05.2010 21:12
Ldnb За поправление спасибо, учтём, но меня интересует ... 14.05.2010 0:11
Ldnb Эх... видимо нормально работать с PChar всё-таки н... 15.05.2010 8:06![]() ![]() |
|
Текстовая версия | 15.11.2025 11:26 |