|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|
Что можно сделать если не хватает памяти?23.03.2017, 10:35. Показов 12150. Ответов 81
Метки bc 3.1 c++ freedos (Все метки)
При компиляции программы в ВС3.1 MS-DOS через интерфейсное меню Compile (Alt+F9) выходит сообщение, что недостаточно оперативной памяти для компиляции и программа останавливается, каким образом можно добавить памяти через настройку среды борланд си, если компьютер имеет следующие параметры:
1. На компе одна ось FreeDos (не эмуляция через DosBox или виртуальную машину или еще как то) 2. Оперативной памяти на компе 4 гига 3. Программа mem.exe видит расширенную память и пишет Total memory free 3,5 гига 4. После запуска bc3.1 в меню Compile - informatiom выходят сообщения: *Extended memory in use - 20 meg *Expanded memory (EMS) - 20 meg *Avialable memory - 20 meg 5. Код на с++ вместе с заголовочными файлами не более 300 килобайт P.S. Я так понимаю, что у меня в настройках среды для выполнения программы используется только 20 мегабайт из доступных 3,5 гигабайт. (на компе других программ нет только эта) По идее, этих 20 мег должно бы хватить для компиляции 300 килобайт кода или я ошибаюсь? И позволяет ли борланд си 3.1 под досом настраивать больше доступной памяти чем 20 мегабайт и как это можно сделать, если можно? И еще эта же сама я программа нормально компилируется через bcc.exe с параметрами и памяти для компиляции ей хватает, и ошибок не выдает, единственно что она использует при компиляции уже готовый объектный модуль. Тогда вытекает еще второй вопрос, если в среде нельзя настроить подключения большей оперативки, может быть тогда запускать на компиляцию не программу *.cpp , а проект с этим самым готовым файлом *.obj В общем подскажите пожалуйста в какую сторону мне можно двигаться в данной ситуации?
0
|
|
| 23.03.2017, 10:35 | |
|
Ответы с готовыми решениями:
81
Выводится сообщение о том, что не хватает памяти, хотя памяти хватает Не хватает памяти, что делать? Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? |
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 25.03.2017, 17:40 [ТС] | ||
|
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 25.03.2017, 18:48 | |
|
0
|
|
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 25.03.2017, 21:30 [ТС] | ||
|
0
|
||
|
|
|
| 25.03.2017, 21:55 | |
|
Отладка - это запуск программы. Просто графическое окно (но не компилятор) присобачивается сбоку к исполняемой задаче и как бы влияет на её процесс исполнения
В реальности это и не графическое окно присобачивается, а программа-отладчик, но в такие дебри влезать не будем, коль скоро ты в этом не понимаешь
1
|
|
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 26.03.2017, 08:28 [ТС] | ||
|
Не по теме: вы там может всю жизнь занимаеетесь одним и тем же, а у нас в колхозе только 2 инженера приходится заниматься всем одновременно и железом и проиборами и серверами, а сколько разных программ через меня прошло это и не сосчитать, начиналось все клиппера в 92м, потом кларион, фокспро, 1с, php, c#, sql, mysql, ассемблер, с++, scpi, labview Просто приезжают исполнители, что то настраивают , а сопровождаем и дорабатываем сами, поэтому конечно знания везде поверхностные. Ну и образование тоже наверно что то значит, одно дело окончить местный политех и другое хотя бы к примеру Физтех, у меня там дочь учится на 2м курсе, так лучше меня знает и си и ассемблер, но загрузка у них мама не горюй... это я так к слову, а форум этот очень хороший, много в чем помогли лично мне.
0
|
||
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|
| 26.03.2017, 08:33 [ТС] | |
|
Может надо брать другой какой то отладчик отдельный? А не из самой среды борланд си?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|||
| 26.03.2017, 08:50 | |||
|
Не по теме:
0
|
|||
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|||
| 26.03.2017, 09:02 [ТС] | |||
|
Не по теме: да нет, стоят несколько компов в сельсовете и даже сервер есть и локальная сеть тянется на ферму, все как у людей, ну может не супер новая техника, если мы еще ms-dos используем Добавлено через 2 минуты
0
|
|||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 26.03.2017, 09:12 | |
|
Неужели программа настолько большая? А без отладки ты свои изменения не можешь внести?
0
|
|
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 26.03.2017, 09:26 [ТС] | ||
|
Добавлено через 2 минуты А вот пишут, что есть такой Турбо отладчик Turbo Debugger это случайно не то что мне хочется?
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 26.03.2017, 11:51 | |
|
Ну а в среде не тот же самый отладчик? Для Turbo Debugger должна быть symbol table, чтобы он не только цифры с адресами показывал. Пишут, что "При работе с Borland C или C++ нужно выполнять компиляцию с параметром /v и компоновку (TLINK) с параметром /v, чтобы получить информацию для отладки".
1
|
|
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 26.03.2017, 12:11 [ТС] | ||
|
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||
| 26.03.2017, 12:28 | ||
|
Ключи для командной строки. Ну если в среде есть настройки такие, то используй их.
У тебя же должны быть древние книги про Borland, там это всё описано.
1
|
||
|
|
|||
| 26.03.2017, 12:50 | |||
Сообщение было отмечено седьмой как решение
РешениеНе по теме:
1
|
|||
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|||
| 26.03.2017, 17:58 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
|
|
|||
| 26.03.2017, 18:00 | |||
|
0
|
|||
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
||
| 26.03.2017, 19:54 [ТС] | ||
|
Добавлено через 46 минут Кто то спрашивал, большая ли программа? 200 килобайт, да ну какая же это большая. Ан нет, почитал сейчас документацию, разработчики пишут что модель памяти надо использовать Large, а это оказывается по тем старым меркам программа большая Не по теме: Large (большая). Модели large и huge применяются только в очень больших программах. Дальние указатели используются как для кода, так и для данных, что дает предельный размер 1 Мб для обоих. Не по теме: , дальше не думал... Добавлено через 14 минут Вот еще что нашел Не по теме: При компиляции модуля (некоторый исходный файл с несколькими подпрограммами), результирующий код для этого модуля не может превышать 64К, поскольку весь файл должен компилироваться в один кодовый сегмент. Это верно и в том случае, когда вы используете одну из больших моделей памяти (medium, large или huge). Если ваш модуль слишком велик и не помещается в одном кодовом сегменте (64К), вы должны разбить его на несколько файлов исходного кода, скомпилировать каждый из них по отдельности и затем скомпоновать их в одну программу. Аналогичным образом, хотя модель huge и позволяет иметь размер статических данных больше чем 64К, в каждом отдельном модуле статические данные не должны превышать 64К. Добавлено через 5 минут Одно из 2х или они сами отлаживали программу частями, а потом запихнули все в один файл. Или использовали модель памяти не Large которую рекомендуют сами, a Huge и то и другое не понятно, какой в этом смысл? Зачем так сделано? Исходники дают, а метод отладки скрыт? Или я чего то упустил и не понял? Добавлено через 3 минуты Не по теме: Единственный разумный вариант это если программа в 200 килобайт по тем временам действительно считалась большой и ее писали сразу несколько человек, разные функции и использовали естественно модель памяти Large, а затем просто слили все вместе и запустили на продажу, вот только так я могу это понять и то не уверен. Добавлено через 38 минут Ну и еще один вариант это изменить модель памяти на Huge что то об этом было в документации и того имеем 5 вариантов: 1. Изменить модель памяти на Huge (программа огромная) 2. Использовать модель памяти рекомендованную, но разбить основной файл ххх.срр (210 кб) на 4, каждый из которых не более 64кб 3. Писать свой код с нуля, и брать только те функции которые описаны в документации как остновные, а дальше смотреть и расширять... 4. Обрезать основную программу до 64кб и попытаться компилировать в отладочном режиме. 5. Компилировать и линковать с опцией /v , но тут я не понял как и каком отладчике ее запускать?
0
|
||
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|
| 26.03.2017, 20:13 [ТС] | |
|
Хотя нашел вот такую информацию получается , что код в модели памяти Large может быть не более 1 мб, а вот данные должны быть менее 64кб. Тогда появляются 2 вороса, как я могу определитиь сколько места у меня занимают данные и почему памяти не хватает если код в 5 раз меньше допустимого в 1 мб для модели памяти large?
0
|
|
|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|
| 26.03.2017, 20:15 [ТС] | |
|
И еще я же не дос использую а FdreeDos, а она 32х разрядная, следовательно в ней должно работать как в самой нижней строке
0
|
|
|
|
||
| 26.03.2017, 21:24 | ||
|
1
|
||
| 26.03.2017, 21:24 | |
|
Что если мне не хватает слоев Что будет если не хватает мощности блока питания? Что происходит, если видеокарте не хватает блока питания? Что можно сделать если нет вложенных индекс файлов в каждой папке??? Что нужно сделать, если 1С пишет "Недостаточно памяти" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|