Форум: "Начинающим";
Текущий архив: 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