Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 03.11.2009, 17:28   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию Structure is too large

В общем, программу писал в FreePascal, а сейчас надо, чтоб работала в обычном борландовском Turbo. Вот на матрицы
Код:
Room, RoomW: array [1..1681, 1..1681] of shortint;
ругается, что очень большие, а оно еще не дошло до этого массива
Код:
TFrom = record
    X: shortint;
    Y: shortint;
  end;

MRoom: array [1..1681, 1..1681] of TFrom;
что там будет, вообще страшно представить! Как-то можно увеличить максимальный размер?
k1r1ch вне форума Ответить с цитированием
Старый 03.11.2009, 20:01   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

А никак. Это же DOS!
в TP можно попытаться сделать только через динамическое выделение памяти! (да и то надо смотреть, не уверен, что всё будет просто и гладко! )

а зачем Вам программа под мёртвую (фактически) операционку?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.11.2009, 20:11   #3
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Просто у нас в школе проверяют на Pascal (который Турбо), ну раз нет так нет...
k1r1ch вне форума Ответить с цитированием
Старый 03.11.2009, 20:13   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

getmem(allocmem) не поможет?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 04.11.2009, 08:31   #5
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

А это что? И вот еще, я из шотинта использую только 1, 0 и -1. Есть такой тип? Это по идеи 2 бита всего!

Последний раз редактировалось k1r1ch; 04.11.2009 в 08:37.
k1r1ch вне форума Ответить с цитированием
Старый 04.11.2009, 08:38   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Есть такой тип?
опишите свой
Код:
var MyP : (-1,0,1);
Цитата:
Код:
function AllocMem(Size: Cardinal): Pointer;
Выделяет в куче блок памяти заданного размера. Каждый байт выделенной памяти выставляется в ноль. Для освобождения памяти используется FreeMem.
Код:
procedure GetMem(var p: pointer;Size: LongInt);
function GetMem(size: LongInt):pointer;
Цитата:
GetMem резервирует Size байт в куче, и возвращает указатель на эту память в p. Если нет больше доступной памяти, то возвращается nil.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 04.11.2009 в 09:06.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 04.11.2009, 08:41   #7
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

А сколько места он будет занимать? 3 бита или 2?
k1r1ch вне форума Ответить с цитированием
Старый 04.11.2009, 09:06   #8
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
А сколько места он будет занимать?
1 байт
Цитата:
Это по идеи 2 бита всего!
а это вам кто сказал?
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 04.11.2009 в 09:13.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 04.11.2009, 09:32   #9
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Ну один бит - знак, а второй - 1 или 0. Вроде 2 бита. А байт это много - шортинт и так байт весит, но помещает в себя от -127 до 127 (примерно), и с ним много. Наверное я разделю массив на два булевых и в одном будет знак, в другом - 1 или 0.
k1r1ch вне форума Ответить с цитированием
Старый 04.11.2009, 09:37   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
А никак.
Действительно можно динамическим списком ) на сколько памяти хватит - но тогда будет работа с указателями.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Incorrect values within SQLDA structure при выполнении запроса pushkin42 БД в Delphi 0 04.11.2008 20:07


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS