![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Привет всем.
Вообщем немогу понять как сохранить динамический массив в память (не переберая его). Скорей всего я не доконца понял как храниться в памяти. Вот как я себе представляю В правильную сторону я вообще думаю? |
|||
|
||||
| GuManOiD |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 12.9.2005 Репутация: нет Всего: нет |
Только не
а
|
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
4 байта - A1
4 байта указатель на массив 4 байта длина A3 4 байта - указатель на A3 Не перебирая не получится - указатели |
|||
|
||||
| GuManOiD |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 12.9.2005 Репутация: нет Всего: нет |
И почему в строке
У тебя A2 - массив строк, а присваиваешь его элементу тип Integer Добавлено @ 19:47 Чето я туплю... |
|||
|
||||
| Ak47black |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Да тут у меня ошибочка вышла.
Хмм... Тоесть тут как-бы сам массив должен хрониться совсем отдельно. Ну ситуация прояснилась. А как элементы массива храняться по адресу указателя , один за другим? |
||||
|
|||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
И еше как программа определяет какое количество элементов есть в массиве?
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
;) -------------------- There are always someone smarter than you... |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
У меня тут клавиатура новая неслушиеться сори.
Добавлено @ 23:35 Вообшем где это количество элементов храниться в памяти? Добавлено @ 23:36 тоесть как программа узнает какое кочество элементов присуствует в массиве? |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
для динамических массивов это 4 байта перед нулевым элементом
Добавлено @ 23:40 для нединамических - length и high при компиляции заменяются константами Добавлено @ 23:47
Добавлено @ 23:50 правда при нулевой длине переменная просто равна nil и сделать -4 байта не выйдет -------------------- Обижено школьников: 8 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Snowy, SizeOf(stringVar)=4. Длина это 4 байта неперед указателем, перед точкой куда он указывает -------------------- Обижено школьников: 8 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Вот это копирует массив из SourceArr в DestArr. Но если как в твоем примере - array of string то будет скопирован массив указателей на строки, а счетчик ссылок строк не увеличится. Поэтому после удаления из памяти SourceArr (если строки больше нигде не используются) DestArr будет хранить невалидные указатели. Лучше воспользоваться стандартной функцией copy, которая расчудесно копирует динамические массивы -------------------- Обижено школьников: 8 |
|||
|
||||
| Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Спасибо bems+
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |