|
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
|
|
Что можно сделать если не хватает памяти?23.03.2017, 10:35. Показов 12320. Ответов 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С пишет "Недостаточно памяти" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|