Вниз
Скачать: CL | DM;

Большой массив   Найти похожие ветки 

← →
n-neo   (2012-02-27 16:26) [0]

Здравствуйте. Мне нужно создать массив длиною 10 000 000. Тип Single. SetLength(a, 10000000) создает массив длиной 131072. Что делать?


← →
Anatoly Podgoretsky ©   (2012-02-27 16:28) [1]

Показать код, а не огрызки


← →
n-neo   (2012-02-27 16:34) [2]


 n:=1000;
 m:=1000;
 SetLength(Massive, 2*n*m*3);
 k:=0;
 for j := 0 to m - 2 do
 for i := 0 to n - 2 do
  begin
    Massive[k]:=XX[i,j+1]/2;
    inc(k);
    Massive[k]:=YY[i,j+1]/2;
    inc(k);
    Massive[k]:=ZZ[i,j+1]/2;
    inc(k);
    Massive[k]:=XX[i,j]/2;
    inc(k);
    Massive[k]:=YY[i,j]/2;
    inc(k);
    Massive[k]:=ZZ[i,j]/2;
    inc(k);
    Massive[k]:=XX[i+1,j]/2;
    inc(k);
    Massive[k]:=YY[i+1,j]/2;
    inc(k);
    Massive[k]:=ZZ[i+1,j]/2;
    inc(k);
    Massive[k]:=XX[i+1,j+1]/2;
    inc(k);
    Massive[k]:=YY[i+1,j+1]/2;
    inc(k);
    Massive[k]:=ZZ[i+1,j+1]/2;
  end;

В процессе выполнения вылетает Access Violation..


← →
RWolf ©   (2012-02-27 16:47) [3]


> SetLength(a, 10000000) создает массив длиной 131072.

«не верю!» ©


← →
RWolf ©   (2012-02-27 16:49) [4]

и да, k элементарно выбегает за границу массива.
это не говоря о том, что не хватает одного inc(k).


← →
n-neo   (2012-02-27 16:50) [5]

извините, конечно же я ошибся...


← →
Забаненный   (2012-02-27 23:36) [6]

это в отдельную процедуру, иначе смотреть страшно
begin
   Massive[k]:=XX[i,j+1]/2;
   Massive[k+1]:=YY[i,j+1]/2;
   Massive[k+2]:=ZZ[i,j+1]/2;
end;

тогда основной цикл
for j := 0 to m - 2 do
for i := 0 to n - 2 do
 begin
   процедура
   inc(k, 3);  
 end;


и можно даже еще сократить:

begin
   Massive[k]:=XX[i,j+1]/2;
   Massive[k+1]:=YY[i,j+1]/2;
   Massive[k+2]:=ZZ[i,j+1]/2;
   inc(k, 3);  
end;



for j := 0 to m - 2 do
   for i := 0 to n - 2 do процедура
   


← →
Забаненный   (2012-02-27 23:38) [7]

разумеется, процедура вызывается трижды, четырежды.. скока там надо. ошибся чуть :)


← →
CRLF   (2012-02-27 23:44) [8]


> это в отдельную процедуру, иначе смотреть страшно
А на глобальную переменную не страшно смотреть?


← →
Забаненный   (2012-02-28 01:20) [9]

Неа. Объяви ее в private и ничего не бойся. Но можно и без нее обойтись. i и j вполне информативны.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.051 c
15-1339062999
alex3038
2012-06-07 13:56
2013.03.22
Ищу компоненты для работы с направленными графами


15-1341568317
AV
2012-07-06 13:51
2013.03.22
Шкаф-кровать. Идея :)


2-1337145645
Verner
2012-05-16 09:20
2013.03.22
Переопределение свойства класса-наследника


15-1331135502
Jeer
2012-03-07 19:51
2013.03.22
С праздником Весны !


15-1344959281
Рекрут
2012-08-14 19:48
2013.03.22
Что должен уметь сисадмин?




   Наверх