Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.037 c
15-1142943346
Геро
2006-03-21 15:15
2006.04.16
Российские сотовые телефоны


15-1143032261
Физик
2006-03-22 15:57
2006.04.16
На етом форуме можна зделать штобы ответы приходили на mail


15-1143440983
укенг
2006-03-27 10:29
2006.04.16
вопрос про КАСКО


4-1138288327
Vlad2
2006-01-26 18:12
2006.04.16
Как получить Handle статически (LIB) загружаемой DLL?


15-1143203204
ZeFiR
2006-03-24 15:26
2006.04.16
Хостинг с возможностью оплаты Visa Electron...





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