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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2008, 01:17   #1
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию динамическое управление памятью

....или использование свободной памяти.Вопрос как можно объяснить вот такое выражение ...

strcpy(hlpspointer->next->daten,datennew);в отрывке кода



Код:
void data_input ( char datennew [30] ) { 

hlpspointer = begin_block;

while (hlpspointer ->next  !=NULL) {

 hlpspointer = hlpspointer ->next;

}
hlpspointer ->next =new (blockselement);

hlpspointer  = hlpspointer  ->next;

strcpy(hlpspointer ->daten,datennew);

hlpspointer ->next = NULL;

}
назначение понятно вроде ввод данных а вот как и откуда она взялась немогу понять
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 07.02.2008, 01:31   #2
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

кстати книжецу ищу одну мож ссылка есть

Wirth Niklas "Алгоритмы и структуры данных"
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 07.02.2008, 15:22   #3
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

что ты хочешь спросить?
я, чесно говоря, не особо понял
Alek86 вне форума Ответить с цитированием
Старый 12.02.2008, 20:16   #4
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

да я уже вроде разобрался ....но вообще проблема в том что либо я чтото не то делаю либо меня не тому учат потому что то что я выкладываю вводит людей в недоумение
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 12.02.2008, 20:37   #5
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

кстати попробую рассказать про еще одну проблему....

немного о себе живу и учусь в германии все задания на немецком общие неписанные правила их видно не коснулись и все функции и имена переменных у них пишутся на немецком если я их буду переписывать на английский будет еще хуже....

а задание такое резервирование и освобождение памяти прочесть цепочку туда и обратно, приведу пример на основе которого мне нужно дополнить программу и суметь выдать цепочку чисел в обратном направлении .
Код:
/*einfach verketete liste односвязный список */
#include<iostream.h>
struct listenelement{
char daten[30];
listenelement* next;
listenelement* last;
};

listenelement*  hilfszeiger;

listenelement*  listenanfang;




  //---------------------------------------------------------
void einfuegen ( char datenneu [30] ) { 

hilfszeiger = listenanfang;


while (hilfszeiger->next  !=NULL) {


hilfszeiger = hilfszeiger->next;

}

hilfszeiger->next =new (listenelement);

hilfszeiger = hilfszeiger ->next;

strcpy(hilfszeiger->daten,datenneu);

hilfszeiger->next = NULL;
}
 //-------------------------------------------------
 void init( ) {  

listenanfang = new(listenelement);

listenanfang ->next = NULL;

strcpy(listenanfang->daten,"Element 0");
}         

void ausgeben( ) {

hilfszeiger = listenanfang;

cout<<hilfszeiger->daten<<"\n";

while (hilfszeiger->next !=NULL )  {

hilfszeiger = hilfszeiger->next;

cout<<hilfszeiger->daten<<"\n";
}
}

//---------------------------------------------

void ende( ) {                                           //

while (listenanfang !=NULL )  {                //
hilfszeiger = listenanfang;                        //
hilfszeiger = hilfszeiger->next;                  //
delete (hilfszeiger);                                 //

}
}


//---------------------------------
  void main( ) {                                           //

init( );                                                       //



einfuegen ("Element 1") ;                        //

einfuegen ("Element 2") ;                         //
ausgeben( );                                               //



 ende( );                                                   //



char p[50];
cin.getline(p,50);
}
"Пилите, Шура, пилите. Они золотые".....

Последний раз редактировалось oblom; 13.02.2008 в 00:06.
oblom вне форума Ответить с цитированием
Старый 12.02.2008, 20:44   #6
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

это оригинал , условие дополнить программу дополнительной функцией и еще одним структурным указателем listenelement* last; функция ausgeben () остается неизменной

http://www.galileo-press.de/openbook...lder/23_23.gif

создать функцию с циклами не сложно а вот как указатель last пришить к начальному элементу или вообще к элементам не могу понять ,указатель next постоянно спозиционирован на следующем элементе как и что надо сделать чтобы last указывал на предыдущий элемент....?
"Пилите, Шура, пилите. Они золотые".....

Последний раз редактировалось oblom; 12.02.2008 в 20:58.
oblom вне форума Ответить с цитированием
Старый 13.02.2008, 21:51   #7
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

решение в функции einfuegen

Код:
 hilfszeiger->next =new (listenelement); 
             hilfszeiger->next->last = hilfszeiger;

и в функции init

Код:
listenanfang = new(listenelement);

listenanfang ->next = listenanfang->last = NULL;

дополнительная функция




Код:
void rw(){
  listenanfang=hilfszeiger;
cout<<hilfszeiger->daten<<endl;
 //-------------------------------------------
while(hilfszeiger->last!=NULL)
{ hilfszeiger=hilfszeiger->last;
cout<<hilfszeiger->daten<<endl;
}
hilfszeiger->last=NULL;


}
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 13.02.2008, 21:52   #8
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

все время приходит цитата от меракс тяжела и неказиста жисть простого программиста
"Пилите, Шура, пилите. Они золотые".....
oblom вне форума Ответить с цитированием
Старый 13.02.2008, 22:08   #9
oblom
Пользователь
 
Аватар для oblom
 
Регистрация: 22.09.2007
Сообщений: 71
По умолчанию

Ребят дайте пожалуйста пару несложных упражнений по теме, если не влом ?! Буду премного благодарен, честно за себя обидно, таких простых вещей не понимаю...
"Пилите, Шура, пилите. Они золотые".....

Последний раз редактировалось oblom; 13.02.2008 в 22:56. Причина: грамматика
oblom вне форума Ответить с цитированием
Старый 14.02.2008, 11:08   #10
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

во всей этой каще вряд ли кто-то будет разбираться
Alek86 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с памятью процесса JRcoker Win Api 10 18.07.2009 22:22
Проблема с памятью в С++ rJIaBkoM Помощь студентам 1 14.06.2008 14:25
Что будет с выделенной памятью? Sibedir Общие вопросы Delphi 9 18.01.2008 13:57
Работа с памятью Shurik Hacker Общие вопросы Delphi 7 22.06.2007 20:51