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

Вниз

Определение размера динамического массива   Найти похожие ветки 

 
Petrovich   (2007-11-27 21:50) [0]

Давно не писал на паскале, но вот снова его вспоминаю.
Использую Дельфи 6

Ниже - простенькая процедура. Очень прощшу объяснить в чем ошибка.

Требуется:
А) Узнать размер созданного динамического массива,
Б) а затем данные из этого массива записать в файл. Причем не используя поток (Stream)

SetLength(testarray,32768);

For actual:=0 to 32767 do testarray[actual]:=$E5;

actual:=SizeOf(testarray);

// var actual : integer.
// Но SizeOf возвращает размер указателя на массив, а не сам размер массива. В тоже время SizeOf(testarray^) выдает ошибку.

AssignFile(F,"test.dat");

// Var F : File;

Rewrite(F,1);
BlockWrite(F,testarray,(actual));
// BlockWrite Здесь не работает.  Почему? В чем ошибка?

CloseFile(F);


 
Юрий Зотов ©   (2007-11-27 22:02) [1]

> Petrovich   (27.11.07 21:50)

Ошибка в том, что переменная типа "динамический массив" - это неявный указатель. Его размер, естественно, 4.

> А) Узнать размер созданного динамического массива,

Length(testarray) - длина массива в его элементах;

Length(testarray) * SizeOf(тип_элементов) - длина массива в байтах (лучше объявить его с атрибутом packed).

> Б) данные из этого массива записать в файл. Причем не используя поток

@testarray[0] - адрес первого (т.е., нулевого) элемента массива.


 
Anatoly Podgoretsky ©   (2007-11-27 22:07) [2]

> Petrovich  (27.11.2007 21:50:00)  [0]

Не SizeOf, а Length
А запись testarray[0]



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

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
2-1195710167
Costy
2007-11-22 08:42
2007.12.23
Ускорения tClientSocket (tserverSocket)


15-1195771536
Real
2007-11-23 01:45
2007.12.23
Поиск HTML (по верстке)


15-1195137434
alikon1
2007-11-15 17:37
2007.12.23
Не могу уследить логику работы калькулятора Windows


2-1195933899
riko
2007-11-24 22:51
2007.12.23
Клиент сервер


2-1196189438
Petrovich
2007-11-27 21:50
2007.12.23
Определение размера динамического массива