Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];

Вниз

Не понимаю где ошибся   Найти похожие ветки 

 
Quattro ©   (2006-03-29 21:58) [0]

Добрый вечер!..подскажите ,пожалуйста, где я ошибся
const
 MaxPixel = MaxInt div SizeOf(TRGBQuad);
 MaxPixell = MaxInt div SizeOf(TRGBTriple);
type
 TRGBArrayT = Array [0..MaxPixell] of TRGBTriple;
 TRGBArrayQ = Array [0..MaxPixel] of TRGBQuad;
var
 x,y:Integer;
 PictOut:TRGBArrayQ;

в выделенной строке компилятор говорит, что "TRGBArrayQ" is not a type identifier...как же так?


 
Rial ©   (2006-03-29 22:06) [1]

А вообще тебя не настораживает, что размер этого массива около 2 GB?
У тебя памяти то столько есть ?


 
Quattro ©   (2006-03-29 22:13) [2]

В интеренете не раз видел  и ничего плохого в адрес такого варианта не читывал...


 
Rial ©   (2006-03-29 22:17) [3]

Но, видимо, твой компилятор не часто заглядывает в интернет.

Вообще, структура, большая по размерам 2^31-1 не может существовать.
У тебя ведь адресация в памяти использует всего 32 бита!


 
Quattro ©   (2006-03-29 22:45) [4]

эээ...а почему размер массива около 2 Гб??...максимальное Integer = 2 147 483 647...каждое целое число представлено 4 байтами, т.е. 32 битами....1 Гб = 2^30 бит, т.е. 1 073 741 824  бит...2 Гб = 2* 1 073 741 824 = 2 147 483 648 бит. Теперь вернемся к Integer....в массиве максимум элементов, каждый по 32 бита...32*2 147 483 647 = 68 719 476 704 бит, т.е. совсем не 2 Гб а намного больше....это я написал для того, чтобы Вы могли проследить ход моей мысли и , если Вам не трудно, указали на ошибку в рассуждениях...


 
Fay ©   (2006-03-29 23:26) [5]

Орех.


 
Rial ©   (2006-03-30 00:41) [6]


> Fay ©   (29.03.06 23:26) [5]

Точно


> Quattro ©   (29.03.06 22:45) [4]

Ошибок то всего чуть- чуть :
1. 1GB <> 2^30 бит.
2. Кол-во элементов в массиве не MaxInt, а MaxInt div SizeOf(Х.З. что).
3. Т.к. размер одного елемента есть SizeOf(Х.З. что), то размер всего массива есть (MaxInt div SizeOf(Х.З. что))*SizeOf(Х.З. что)=MaxInt.
4. Тип Integer=[-2^31 .. 2^31-1].
5. 2 GB <> 2 147 483 648 бит.
6. В массиве вообще не Integer!
7. Итого: размер массива= 2GB-1B.


 
Johnmen ©   (2006-03-30 10:39) [7]

Уменьши MaxPixel на 1 и компиляция пройдёт :)))

Размер переменной не м.б. >= 2GB
Это единственная ошибка в [0]



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

Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
2-1143978392
mc tarik
2006-04-02 15:46
2006.04.16
Использование DLL?


2-1143708974
Вова2
2006-03-30 12:56
2006.04.16
Установка доступа к дискам!!!


2-1143797397
Xmen
2006-03-31 13:29
2006.04.16
Распечатка в QuickReport


2-1143782088
serg111111
2006-03-31 09:14
2006.04.16
Помогите с сервисом


6-1136699997
ezorcist
2006-01-08 08:59
2006.04.16
Запретить показывать ошибку





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