Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.30;
Скачать: CL | DM;

Вниз

PChar2   Найти похожие ветки 

 
Muskat   (2003-06-11 14:40) [0]

function Test1(S: String): PChar;
begin
Result := PChar(Copy(S,2,Length(S)));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
c : PChar;

begin
c := Test1("*2");
ShowMessage(c);
end;

При вызове функции Test1,
с параметром "*2", результат = nil,
с параметром "*23", результат = "23",
с параметром "*234", результат = "23",
с параметром "*2345", результат = "2345",

Но если заменить тип результата на String, тогда все нормально:
с параметром "*2", результат = "2",
с параметром "*23", результат = "23",
с параметром "*234", результат = "234",
с параметром "*2345", результат = "2345".

В чем дело?


 
han_malign ©   (2003-06-11 14:49) [1]

скажи спасибо что не AV - передаешь в результате адрес временной строки, которая неявно создается в Copy, и уничтожается при выходе из функции(поскольку Reference Counter = 0, т.к. нет присвоения другой строковой переменной)


 
Юрий Зотов ©   (2003-06-11 15:22) [2]

> Muskat (11.06.03 14:40)

Это уже не первый Ваш эксперимент с PChar, верно? И каждый раз возникают вопросы. Но ведь так можно экспериментировать всю жизнь, не лучше ли просто почитать про указатели и работу с динамической памятью? Чтобы снять все вопросы навсегда.


 
vv3 ©   (2003-06-19 00:11) [3]

А StrPCopy - нет?


 
VMcL ©   (2003-06-19 01:34) [4]

>vv3 © (19.06.03 00:11)

Ещё один блеснул интеллектом.



Страницы: 1 вся ветка

Текущий архив: 2003.06.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-97783
Кен
2003-06-12 07:51
2003.06.30
А есть ли программы, которые могут по фотографии воссоздать трёхм


4-97933
Bonial
2003-04-20 02:41
2003.06.30
Как запретить доступ к папке?


1-97674
Serg!!™™
2003-06-17 14:20
2003.06.30
Form


14-97794
RedFox
2003-06-14 19:29
2003.06.30
Как скрыть главную форму при запуске программы


9-97470
Иван Грозный
2003-01-17 18:13
2003.06.30
Кратчайший путь