Страница: 1 |
Вопрос: Массивы | Добавлено: 16.01.04 20:26 |
Автор вопроса: ![]() |
Как с помощью CopyMemory удалять\вставлять элементы в массив. Заранее благодарен |
Ответы | Всего ответов: 2 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 16.01.04 22:09 |
Вот на счет вставлять - не знаю, а вот удалять, эт пожалуйста Private Function RemoveCtl(ByVal Index As Integer) As Integer |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 17.01.04 21:51 |
Вставлять тоже не сложно, только нужно зарезервировать область памяти для того, чтобы не затереть байт, который будет копироваться следующим сдвигом вправо элементов таблицы (как я понимаю, CopyMemory копирует байты от меньшего адреса к большему, последовательно). Т.е. если нужно вставить элемент в позицию n (считая от нуля), где 0-й элемент находится по адресу p, а длина одного элемента в байтах b и адрес зарезервированной области c, надо скопировать память от p+n до конца массива в c длиной b*число_элементов_после_n-1, потом записать элемент n, потом скопировать память той же длины из c в n+p+b |
Страница: 1 |
|