Главная страница
    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.44 MB
Время: 0.008 c
3-33454
mOOx_
2003-08-21 12:20
2003.09.11
Событие на коннект


14-33743
jack128
2003-08-25 00:03
2003.09.11
Именинники 25 августа


14-33722
sasami737
2003-08-21 17:57
2003.09.11
Как сделать критический процесс ?


14-33813
Карелин Артем
2003-08-22 11:21
2003.09.11
Конференция Основная


3-33502
VladimirS
2003-08-19 07:35
2003.09.11
ExpressQuantumGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский