Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизInteger(pchar()) Найти похожие ветки
← →
Olivka (2003-10-06 12:42) [0]Если я какой =то переменной присваиваю
var TAG:integer
TAG:=integer(pchar("ddd"));
То где будет храниться "ddd"? В TAG мы будем иметь целочисленное от указателя? И нужно ли будет потом удалять за собой эту строчку?
← →
Digitman (2003-10-06 12:50) [1]
> где будет храниться "ddd"
в read-only секции инициализированных данных процесса
> В TAG мы будем иметь целочисленное от указателя
да. значение указателя, рассматриваемое просто как целое 32-разр. число со знаком
> нужно ли будет потом удалять за собой эту строчку
нет.
← →
Olivka (2003-10-06 16:16) [2]А если TAG - это свойство тег контрола? тут нету никаких подводных камней? если его присваивать например, в Init, а потом использовать как
>TempPChar:=pchar(SomeControl.tag);
← →
Digitman (2003-10-06 16:34) [3]никаких.
Tag - просто поле структуры класса контрола
Компилятор не делает никаких предположений о том, что в каждый момент времени хранит поле объекта Control.Tag, и не вставляет неявно никакой код, который бы работал со значением этого поля
выражение
pchar("ddd")
вернет типизированную ссылку на область данных, которая фиксирована по местоположению в ВАП процесса.
время жизни данных, которые определены и адрес которых получен таким образом, равно времени жизни процесса и не зависит ни от чего ... ну разве что от извращений программиста, вздумавшего изменить привелегии доступа к соотв.странице вирт.памяти процесса или вообще выгрузить ее из ВАП процесса)
← →
Olivka (2003-10-06 20:14) [4]Спасибо большое за такой четкий ответ.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.067 c