![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Marcino |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
Мне надо создать массив с 100000 float... Но я некак не могу понять, почему приходитса использовать указатели... как я могу делать операции - умножать, делить с каждым елементом етого массива, которий должен состоять из 100000 или больше элементов?
Учусь я на Borland c++ for DOS. Помогите! Буду благодарен, если поправите код! #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <alloc.h> int main(void) { float *at; if ((at = (float *) malloc(400000l)) == NULL) // почему надо использовать указатель? { printf("Error at\n"); exit(1); } return 0; } |
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
иначе стек рухнет(скорее всего, если он у тебя не больше стандартного)
ниче не понял, перефразируй.. |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
100000*sizeof(float)/1024 = 390 кбайт (в досе маскимальный размер 64к) имхо нифига у тя не получиться (где то видел где есть возможность преодоления 64к но не помню где) хотя давно я программил под дос могу и ошибатся -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
||||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Во первых, если код на C++, то грамотнее применять new вместо malloc:
и явно ловить NULL действительно не надо -- вместо этого надо обрабатывать исключение. Во вторых, неужели действительно такой большой массив требуется? Он займет изрядную часть conventional memory ДОСа. --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Сегмент данных нельзя использовать? Или отвращение к глобальным данным?
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
MAKCim,
На сколько я помню, сегмент данных - тоже 64 килобайта. Так что наверное не получится... (мы же программулину под ДОС рассматриваем) Это сообщение отредактировал(а) Kuvaldis - 26.10.2006, 16:42 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
да, правда можно иметь несколько сегментов. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Kuvaldis
ну да, тут же реальный режим Добавлено @ 16:51 vinter Сомневаюсь, что один большой кусок данных можно раскидать по нескольким сегментам Точнее можно, но обращение к данным будет сложнее -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
Вообще надо еще посмотреть и разобраться, для чего нужно столько памяти: как вариант, нельзя исключать и использвание массива бит (битовых полей). В универе преподы старшего поколения с примерами такого рода знакомили нас регулярно...
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Да, давненько я не программировал под DOS -- элементарные вещи забывать стал. ;)
Дело не только в том, что обычной памяти требуется много -- но и массив такого размера не влезет в один 64K сегмент. Так что, чтобы обращения к нему были правильными, указатель надо описывать так:
И тогда, вроде, все будет правильно -- хотя желательно проверить экспериментально. --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
боюсь что большой блок все равно выделить не удастся. Хотя можно попытаться поставить модель памяти huge...
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Для больших данных хватит модели far. Huge-модель - это когда еще и код в разных сегментах. Вроде бы, насколько помню.
-------------------- ... |
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
да
ты видимо имела ввиду, что-то другое так как такой модели нет |
||||
|
|||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Честно сказать, уже не помню, как это называется... Но была такая модель, когда данные могут занимать много сегментов, а код - один. Помню, что чем-то модель huge мне не понравилась... -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |