Помощь - Поиск - Пользователи - Календарь
Полная версия: Память...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
renesko1

type

heightMatrix = array [1..MaxInt,1..MaxInt] of shortInt ;
pheightMatrix = ^heightMatrix ;

var

maxx, maxy : integer ;

Color1, color2 : shortint ;
Color3, color4 : shortint ; // ñì. äîêóìåíòàöèþ
length, width : integer ;
x, y, x1, y1 : real ; // êîîðäèíàòû ëåâîãî âåðõíåãî è ïðàâîãî íèæíåãî
// óãëà ïðÿìîóãîëüíèêà

phMat : pheightMatrix ;
l, w : integer ; // ñ÷¸ò÷èêè â öèêëàõ
stepx, stepy : integer ;



....
procedure CreatMatrix (var p : pheightMatrix ;
var len, width : integer ) ;
const
name_in = 'Height_map.txt' ;

var
Input_map : text ;
l, w : integer ; // l = length, w = width
x, y : integer ;
Size : integer ;
begin
{$I-}
assign(Input_map, name_in) ;
reset(Input_map) ;
if IOResult <> 0 then
begin
writeln('Ôàéë íå íàéäåí â êàòàëîãå ñ ïðîãðàìîé.');
halt ;
end ;
{$I+}
read(Input_Map, l) ;
read(Input_Map, w) ;


size := l * w * sizeOf(shortInt) ;
writeln(size);

Getmem(p, Size) ; // только когда <= 100
for y := 1 to w do
begin
for x := 1 to l do
read(input_map, p^[x, y]) ;
end ;

len := l ; width := w ;

close(input_map);
end ;
...
BEGIN
CreatMatrix(phMat,length, width);



Вот это добро не работает, когда Size > 100, как это обойти, если можно.
volvo
Стой, стой... Создаешь динамическую матрицу? Тогда неправильно создаешь...

Смотри здесь:
Динамические массивы и матрицы
(сначала выделяется память под L строк, потом инициализируется каждая строка. Естественно, способ обращения к ячейке - тоже другой)...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.