Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.01 c
14-33811
Vlad Oshin
2003-08-25 13:23
2003.09.11
WinXPPro два вопроса.


1-33612
Berezne
2003-09-01 12:35
2003.09.11
Отчет в Qreport не хочет работать как надо


14-33800
uw
2003-08-25 12:58
2003.09.11
Английский язык - самый трудный


1-33633
tvic
2003-09-01 16:40
2003.09.11
Глюк с чтением файлов


3-33457
P0tia
2003-08-20 22:27
2003.09.11
Label и ComboBoxEx





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский