Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.272 c
15-1339316192
MastaK
2012-06-10 12:16
2013.03.22
Игра Sokoban


2-1333196241
SKIPtr
2012-03-31 16:17
2013.03.22
управление входящим подключением


15-1343044403
D.L.
2012-07-23 15:53
2013.03.22
как научится воспринимать английскую речь на слух?


15-1339158733
oxffff
2012-06-08 16:32
2013.03.22
Производственный календарь. Если web сервис бесплатный?


2-1332165801
Валера
2012-03-19 18:03
2013.03.22
Не компилируется проект с компонентом RS232





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский