Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2011, 18:29   #1
DoubleD
Новичок
Джуниор
 
Регистрация: 03.01.2011
Сообщений: 3
По умолчанию Реализация последовательного линейного списка

ПЛС. Массив, на основе которого реализуется ПЛС, находится в динамической памяти (базовый тип элемента определяется задачей). Память под массив выделяется при инициализации ПЛС и количество элементов сохраняется в дескрипторе.

Код:
#define   Index   1000
typedef  double BaseType;
typedef   BaseType TMemList[Index];
typedef   unsigned ptrel; 	
typedef   struct List {TMemList* PMemList; 
                          ptrel ptr;
                          unsigned int N; // длина списка   
                          unsigned int SizeMem;};// размер массива
short ListError;
void InitList(List *L,unsigned SizeMem)
void PutList(List *L, BaseType E)
void GetList(List *L, BaseType *E)
void ReadList(List *L,BaseType *E)
int FullList(List *L)
int EndList(List *L)
usigned int Count(List *L)
void BeginPtr(List *L)
void EndPtr(List *L)
void MovePtr(List *L)
void MoveTo(List *L, unsigned int n)
void DoneList(List *L)
void CopyList(List *L1,List *L2)
Меня интересует собственно только процедура инициализации , каким образом можно выделить память под массив и обращаться к элементам массива?
DoubleD вне форума Ответить с цитированием
Старый 03.01.2011, 19:12   #2
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

ну выделяешь кусок памяти под массив структур элемента листа через malloc как всегда (если чистый C - если C++ то оператор new), я не понимаю в чем тут отличие от обычных массивов?
UltimaBeaR вне форума Ответить с цитированием
Старый 03.01.2011, 19:59   #3
DoubleD
Новичок
Джуниор
 
Регистрация: 03.01.2011
Сообщений: 3
По умолчанию

Код:
L->PMemList=new BaseType[SizeMem];
Компилятор ругается что не те типы , а как правильно записать я не пойму

Такой вариант будет правильным?

Код:
L->PMemList = new  (TMemList*) [SizeMem];

Последний раз редактировалось DoubleD; 03.01.2011 в 20:21.
DoubleD вне форума Ответить с цитированием
Старый 04.01.2011, 02:13   #4
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

L->PMemList = new TMemList[SizeMem];
UltimaBeaR вне форума Ответить с цитированием
Старый 05.01.2011, 17:11   #5
DoubleD
Новичок
Джуниор
 
Регистрация: 03.01.2011
Сообщений: 3
По умолчанию

Вопрос
Если я все правильно понял то при таком выделении выделиться память под SizeMem тысячных массивов?
Можно ли как-нибудь выделить память допустим под 1 массив из 100 элементов?
DoubleD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программная реализация однонаправленного линейного списка Денис Ст Помощь студентам 2 14.01.2014 21:50
C# Сортировка линейного списка SaikoNS Помощь студентам 6 29.10.2010 21:06
Из линейного списка в двусвязный(Си) Lexeres Помощь студентам 0 06.05.2010 19:31
Сортировка линейного списка alesfer Помощь студентам 1 03.04.2010 21:16
Сортировка линейного списка. ТИВ Паскаль, Turbo Pascal, PascalABC.NET 3 23.11.2008 22:39