Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизPointer Найти похожие ветки
← →
qwe (2003-10-30 17:42) [0]Что такое Pointer
← →
VAleksey (2003-10-30 17:42) [1]Указатель.
← →
Skier (2003-10-30 17:43) [2]точкаer
← →
VAleksey (2003-10-30 17:44) [3]
> Skier © (30.10.03 17:43) [2]
:-))
← →
qwe (2003-10-30 17:44) [4]а почему для использованиz TList нужно делать MyList.Create это же просто массив Pointer-ов
← →
Skier (2003-10-30 17:45) [5]
> это же просто массив Pointer-ов
ОЙ !
← →
qwe (2003-10-30 17:47) [6]а по простому?
← →
VAleksey (2003-10-30 17:47) [7]Потому, что он инкапсулирует в себе методы и св-ва для работы с этим массивом.
PS
И это не "просто массив".
PPS
Любите книги - источник знаний.
← →
Игорь Шевченко (2003-10-30 18:02) [8]Орешник
← →
Digitman (2003-10-30 18:06) [9]
> Игорь Шевченко
ну эт ты зря, Игорь) ... про орешник-то) .. человек, чувствуется, искренне хочет разобраться ... без амбиций ... хоть и каша пока у него в голове ... судя по разнообразности вопросов, которые он запостил сегодня ...
← →
Digitman (2003-10-30 18:08) [10]Орешник, безусловно, хорош для отлупа в случае вопросов начинающихся с "как с помощью палочки и семи дырочек чего-то там сотворить, сам не знаю чего")))
← →
Игорь Шевченко (2003-10-30 18:09) [11]Digitman © (30.10.03 18:06)
каша очень хорошо лечится кнопкой F1 :))
← →
Digitman (2003-10-30 18:14) [12]
> Игорь Шевченко
не спорю) ... но порой, согласись, человеку трудно сломать себя, просто и бесхитростно заявив незнание буржуйского языка и/или спец.терминологии) ... амбиции же гораздо печальней , а оных я, к примеру, не наблюдаю)
← →
qwe (2003-10-30 18:21) [13]я и не спорю что я чайник ковыряюсь пока
← →
Юрий Зотов (2003-10-30 19:45) [14]> qwe
TList - это не массив в чистом виде. Это КЛАСС , в котором есть некое хранилище Pointer"ов и методы для работы с этим хранилищем и его элементами.
А раз это КЛАСС , то перед началом работы с ним нужно создать ОБЪЕКТ этого класса, а перед концом работы - уничтожить его.
Кроме того, если хотя бы один указатель из TList указывает на динамически распределенную область памяти, то перед уничтожением самого TList все такие области памяти надо либо освободить, либо запомнить их адреса где-то в ином месте, чтобы потом тоже можно было эту память освободить. Потому что вместе с уничтожением TList будут уничтожены все его указатели и адреса динамически выделенных областей памяти, на которые они указывали, окажутся потерянными. Значит, если эти адреса не были запомнены где-то еще, то освободить соответствующие области памяти потом уже не удастся.
← →
Fredericco (2003-10-30 20:07) [15]> qwe
Данные в памяти хранятся по принципу сегмент:смещение.
Грубый пример: у тебя есть строка "абв", ОС сохраняет ее в памяти таким образом: берутся первые свободные подряд идущие 3 ячейки памяти (так как у тебя длина строки 3) и адрес первой из них сохраняется как сегмент (назовем его, к примеру, ES). Обращение к элементам строки будет вестись так:
a -> ES+0
b -> ES+1
c -> ES+2.
Так вот Pointer это, почти, тоже самое что и сегмент. Это адрес той ячейки памяти, с которой начинаются данные.
← →
Владислав (2003-10-30 20:09) [16]> Fredericco © (30.10.03 20:07) [15]
Вау!
← →
Юрий Зотов (2003-10-30 20:22) [17]> Fredericco © (30.10.03 20:07) [15]
> Данные в памяти хранятся по принципу сегмент:смещение.
Так было в 16-разрядных DOS и Windows, а В Win32 используется уже сплошная модель памяти, без всяких сегментов. А то, о чем Вы говорите, называется "адресация со смещением" и к сегментации никакого отношения не имеет. Первый адрес здесь - это адрес базы , а адреса сегментов - это то, что хранится в специальных сегментных регистрах процессора CS, DS, ES, SS.
← →
Fredericco (2003-10-30 20:30) [18]2 Юрий Зотов © (30.10.03 20:22) [17]
Сорри. Понял.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c