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

Вниз

c++->pascal   Найти похожие ветки 

 
emike   (2003-08-25 04:18) [0]

здравствуйте
мне нужно перевести в паскаль такой сишный код (книжек под рукой нет):
typedef struct _stream_processor {
....
} stream_processor;
typedef struct {
stream_processor *streams;
.....
} stream_set;
...
stream_set *set = calloc(1, sizeof(stream_set));
set->streams = calloc(5, sizeof(stream_processor)); //тут создаётся массив stream_processor"ов
...
stream = &set->streams[set->used]; //а тут обращение к его элементам
...

какие параметры у calloc и как обращаться к элементам массивов?


 
Некрофил-затейник__   (2003-08-25 06:30) [1]

emike
Попробуй все это через динамический массив.
пример использования dynamic array

var
a:array of string;
count:integer;
begin
SetLength(a,3);
for count := 0 to Length(a)-1 do
a := "Stroka "+inttostr(count);
writeln(a[Length(a)-1]);
SetLength(a,0);
end;


 
emike   (2003-08-25 15:43) [2]


> Некрофил-затейник__ (25.08.03 06:30) [1]

ну что это динамические массивы я понял
что делает функция calloc? выделяет n блоков указанного размера?
и как обойтись без динамических массивов (максимально сохранив эти типы данных)? очень не хочется перелопачивать горы уже переведённого кода


 
DrPass ©   (2003-08-25 16:01) [3]

Если дословно, то примерно так:
GetMem(_set, sizeof(stream_set));
FillChar(_set^, sizeof(stream_set),0);
GetMem(_set^.streams, 5*sizeof(stream_processor));
FillChar(_set^.streams^, 5*sizeof(stream_processor),0);
Вполне вероятно, что обнуление с помощью FillChar нафиг не нужно. Просто calloc, если не ошибаюсь, обнуляет выделенную область памяти.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-33566
Chlavik
2003-08-28 20:39
2003.09.11
Debugger и GetLastError


7-33833
Antonyan
2003-06-27 12:32
2003.09.11
Exe файл


7-33820
АТ
2003-06-15 20:43
2003.09.11
Как работать с очередью на печать


14-33725
Palladin
2003-08-25 13:29
2003.09.11
UML


14-33731
Дмитрий_Б
2003-08-25 07:52
2003.09.11
Не ставится MS SQL Server 2000 Desktop Engine