![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |