![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
![]() Цитата:
|
#17
|
||||
|
||||
![]() Цитата:
Цитата:
|
#18
|
|||
|
|||
![]() Цитата:
вопрос был "ЧЕМ ПЛОХ" способ приведенный мною. и дельфи 3 тут вовсе не причем... |
#19
|
|||
|
|||
![]() Вообще, для подобных целей давно используется PChar.
Есть еще вопросы и непонятки? И прекращаем лаятся, а то достану плюсомет!!! |
#20
|
||||
|
||||
![]() оффтоп: тогда уж минусомёт.
![]() |
#21
|
|||
|
|||
![]() Цитата:
Код:
type PMyInfo = ^TMyInfo; TMyInfo = record a:pointer; s:integer; b:PMyInfo; end; var MyInfo:PMyInfo; procedure qwerty; var MyStr:PString; begin new(MyStr); {*} MyStr^:='qwerty'; {**} new(MyInfo); MyInfo.a:=MyStr; // неправильно MyInfo.s:=sizeof(MyStr); MyInfo.s := Length(MyStr); end; /* а теперь всё в обратном порядке */ procedure disposeMyInfo(aMyInfo:PMyInfo); var MyStr:PString; begin MyStr := PString(aMyInfo.a); MyStr^:=''; dispose(MyStr); // если выделяем через New, то и удаляем через dispose; dispose(aMyInfo); end; begin {...некоторый код...} qwerty; {...некоторый код...} disposeMyInfo(MyInfo); end. |
#22
|
|||
|
|||
![]() Цитата:
Код:
type PMyInfo = ^TMyInfo; TMyInfo = record Str:PChar; Len:integer; Next:PMyInfo; end; var MyInfo:PMyInfo = nil; function GenInfo(Str:String):PMyInfo; begin new(Result); Result.Next:=Nil; Result.Len:=Length(Str); GetMem(Result.Str,Length(Str)); {*} Move(Str[1],Result.Str^,Length(Str)); end; procedure DisposeMyInfo(aMyInfo:PMyInfo); begin FreeMem(aMyInfo.Str); dispose(aMyInfo); end; begin {...некоторый код...} MyInfo := GenInfo('qwerty'); {...некоторый код...} dispose(MyInfo); end. |