Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: 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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.063 c
1-1297521334
Slava.yo
2011-02-12 17:35
2013.03.22
Автопрокрутка в Webbrowser


15-1352406602
Юрий
2012-11-09 00:30
2013.03.22
С днем рождения ! 9 ноября 2012 пятница


15-1346265576
Artem
2012-08-29 22:39
2013.03.22
Почему не отображается диалог?Помогите, пожалуйста


2-1348029995
Dibed
2012-09-19 08:46
2013.03.22
Преобразование даты и времени


15-1348568333
Стьюденд
2012-09-25 14:18
2013.03.22
Подсчет одинаковых слов в Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский