![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
аналог строки, насколько мне известно, но никак не массива.. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
... и добро пожаловать в каменный век! Далеко не все массивы имеют размер в 255 элементов. Очень часто встречаются и более большие. Да и не всегда массивы хранят целые числа, еще бывает структуры, классы, указатели... Короче, твой совет из разряда медвежьих услуг. |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 5 Всего: 10 |
Dem_max, в паскале у массивов длина хранится в int (int16 в 16-разрядном турбопаскале, int32 в 32-разрядной делфе) и находится не в начале массива, а перед ним.
|
|||
|
||||
Chiren |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
"Таскать" одну переменную не так уж тяжело ![]() Можно ввести символ конца массива: например, последний элемент равен нулю. И по такому признаку узнавать длину массива ![]() Информацию об объёме выделенной памяти хранит ОС где-то в своих таблицах о свободной памяти. Но программисту эта информация не доступна. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
а также программист лишен одного варианта, того кто будет терминатором.. и еще раз : не надо путать строку ( как терминированную последовательность ) и массив |
|||
|
||||
djamshud |
|
||||||||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
>Но выход есть.
Среди извращений есть более простой и надежный вариант - выделять памяти на четыре (например) байта больше, чем нужно
в начало буфера записывать длину:
и отдавать массив в пользование:
Освобождать память из-под него так:
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
||||||||
|
|||||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
![]() |
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
mes, таким извращением удобно пользоваться например для передачи буферов данных по сети и обработки их без дополнительных промежуточных преобразований. Но вообще лучше конечно без них, хотя извращенцы всегда найдутся, и от этого никуда не уйти. Так сделаем их жизнь прекрасней!
:) -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну да пакет, массив и буффер одно и то же.. одного из них я уже знаю "в лицо".. но не буду показывать пальцем.. ![]() Это сообщение отредактировал(а) mes - 21.7.2010, 16:42 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |