Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
Внизarray Найти похожие ветки
← →
MECHANIC (2003-01-19 15:37) [0]И вопрос, соответственно, такой: для чего нужно такое описание и с чем его едят.
tagEXTLOGPEN = packed record
elpPenStyle: DWORD;
elpWidth: DWORD;
elpBrushStyle: UINT;
elpColor: COLORREF;
elpHatch: Longint;
elpNumEntries: DWORD;
elpStyleEntry: array[0..0] of DWORD;
end;
← →
asmith (2003-01-19 17:30) [1]array[0..0] of DWORD используется для описания массива переменной длины. В данном случае это описание стиля пера: первый элемент массива дает длину первого штриха, второй - длину первого зазора и так далее.
← →
MECHANIC (2003-01-19 22:25) [2]Спасибо, asmith, но как присвоить какое-то значение хотя бы второму элементу массива - elpStyleEntry[1]?
← →
MECHANIC (2003-01-19 22:51) [3]Однако, разница между динамическим массивом, массивом переменной длины и массивом.. почему-то от меня ускользает.
Есть ли разница в представлении этих типов в памяти?
1) array[0..0] of DWORD"!
2) array[0..1] of DWORD
3) array of DWORD
1"!) Этому массиву невозможно присвоить [1], невозможно присвоить значения другого массива фиксировнной длины (array[0..1] of DWORD), невозможно указать на него через пойнтер, что с ним вообще можно делать?! Что за массив такой..
← →
Alex Konshin (2003-01-20 01:47) [4]???
Какие проблемы-то?
type PDWORD = ^DWORD;
var p :PDWORD;
p := @tag.eplStyleEntry;
{$RANGECHECKS OFF}
var i : Integer;
a : Array [0..0] of Integer;
i := 1;
a[i] := 1;
3) Array of DWORD - это динамический массив. По поведению и представлению в памяти похож на тип String. Читай Help, там описана разница.
Я вот, например, недоволен, что в Delphi нельзя написать
Array [0..-1] of DWORD, т.е. нельзя определить массив без элементов (кстати, может, все-таки как-то можно?). Иногда очень надо...
← →
Дмитрий Баранов (2003-01-20 10:12) [5]
Приведен кусок переведенного кода с С, где разницы между массивом и указателем нет, но Object Pascal позволяет имитировать такое поведение с помощью установки указателя на первый элемент массива и последующим жонглированием с адресами (увеличил адрес, разадресовал - получил следующий элемент), или, действительно, манипуляциями с опциями компилятора :)
← →
MECHANIC (2003-01-20 16:29) [6]Спасибо всем за участие.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c