![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
array [0..0] of DWORD [D6]
MECHANIC © (2003-01-19 15:37:00)И вопрос, соответственно, такой: для чего нужно такое описание и с чем его едят.
tagEXTLOGPEN = packed record
elpPenStyle: DWORD;
elpWidth: DWORD;
elpBrushStyle: UINT;
elpColor: COLORREF;
elpHatch: Longint;
elpNumEntries: DWORD;
elpStyleEntry: array[0..0] of DWORD;
end;
MECHANIC (2003-01-20 16:29:00) [1]Спасибо всем за участие.
Дмитрий Баранов (2003-01-20 10:12:00) [2]
Приведен кусок переведенного кода с С, где разницы между массивом и указателем нет, но Object Pascal позволяет имитировать такое поведение с помощью установки указателя на первый элемент массива и последующим жонглированием с адресами (увеличил адрес, разадресовал - получил следующий элемент), или, действительно, манипуляциями с опциями компилятора :)
Alex Konshin (2003-01-20 01:47:00) [3]???
Какие проблемы-то?
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, т.е. нельзя определить массив без элементов (кстати, может, все-таки как-то можно?). Иногда очень надо...
MECHANIC (2003-01-19 22:51:00) [4]Однако, разница между динамическим массивом, массивом переменной длины и массивом.. почему-то от меня ускользает.
Есть ли разница в представлении этих типов в памяти?
1) array[0..0] of DWORD"!
2) array[0..1] of DWORD
3) array of DWORD
1"!) Этому массиву невозможно присвоить [1], невозможно присвоить значения другого массива фиксировнной длины (array[0..1] of DWORD), невозможно указать на него через пойнтер, что с ним вообще можно делать?! Что за массив такой..
MECHANIC (2003-01-19 22:25:00) [5]Спасибо, asmith, но как присвоить какое-то значение хотя бы второму элементу массива - elpStyleEntry[1]?
asmith (2003-01-19 17:30:00) [6]array[0..0] of DWORD используется для описания массива переменной длины. В данном случае это описание стиля пера: первый элемент массива дает длину первого штриха, второй - длину первого зазора и так далее.