Главная страница
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.022 c
7-97912
DAT
2003-04-18 15:51
2003.06.30
Отсутствует доверие к программируемому доступу к проекту VB


3-97512
me2
2003-06-05 17:13
2003.06.30
Сортировка полей таблицы


14-97799
Asteroid
2003-06-11 15:20
2003.06.30
Где можно скачать LightWave?


14-97830
Bboy
2003-06-12 10:25
2003.06.30
Вот бы поменять все буквы с больших на маленькие...


14-97826
Juster~
2003-06-10 23:12
2003.06.30
Обьекты, классы,...