Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизБольшой массив Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.071 c