![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| OOMPH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 18.3.2006 Репутация: нет Всего: нет |
Подскажите, пожалуйста, что такое емкостная сложность и как её расчитать. Как я понял, это размер памяти, занимаемый программой, но ведь это не просто сумма размеров переменных.
Спасибо! Если надо, могу программу выложить. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
память можно разделить на три типа:
1. глобальные переменные 2. стек (локальные переменные) 3. куча например, если считать факториал с помощью рекурсии int f(int x) {return (x==0)?1:(x*f(x-1));} то количество используемой памяти будет пропорционально x, т.к. на каждый шаг тратится память (хранение x+адрес возврата) -------------------- qqq |
|||
|
||||
| OOMPH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 18.3.2006 Репутация: нет Всего: нет |
Как бы это чуть-чуть поподробнее...
Допустим, есть функция
В этом случае будет выделяться память под переменные F, n и массив dP соответственно 8, 2 и 8 байт. Как это правильно записать? |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
OOMPH,
Добавлено @ 13:18 OOMPH Чтобы вообще без проблем всё автоматически подсчитать, перегрузи new, в перегруженном операторе сделай увиличение какого-нибудь статического счетчика и переведи все переменные на динамическую память. Кстати, если мне не изменяет память, то указатели - это теже переменные и под них также выделяется память, что-то около одного байта(для хранения адресса), но для каждого типа указатели разные. Добавлено @ 13:21 Кстати в приведенном тобой куске помимо синтаксических ошибок, есть и очень противная ошибка переполнения, учти, что положив в переменную типа float произведение двух переменных типа float ты можешь запросто вылезти за границы допустимых значений(в итоге получишь в твоем случае отрицательное значение, ибо у тебя signed float). |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Ну, конечно, в зависимости от компилятора, ОС и платформы... но 1 - думаю, маловато будет... скорее 2 или 4... -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| OOMPH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 18.3.2006 Репутация: нет Всего: нет |
dP[16] позже в main'e расчитывается.
К сожаленью, да (и это только в первой функции В нете ничего, кроме определения и нескольких ответов по паскалю не нашел, если б хорошенький примерчик, да на Си, глядишь и всё понял бы Вот поэтому и помощи прошу |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |