Я просмотрел множество примеров односвязного списка, который работает как стек. Они имеют в общем следующем: Они всегда используют бесплатно на появившемся пункте в функции попа(), например:Связанный список без free() in pop()
struct Node
{
struct Node *Next;
}*Head;
void pop()
{
struct Node *cur_ptr=Head;
....
Head = Head->Next;
// do something with cur_ptr
free(cur_ptr);
....
}
ли мне всегда нужно использовать это правило? Могу ли я поместить элемент из списка без бесплатного элемента в функции pop? Я хочу добиться того, чтобы выделить список только один раз, когда запускается программа, и избегать освобождения памяти и выделения памяти в каждый раз, когда я вызываю pop, push function. Я хочу поп-элемент, использовать элемент и снова нажать его (в другой части программы) для повторного использования. С этим подходом что-то не так?
Спасибо, что заблаговременно за ваше мнение и помощь.
Дизайн c (не C++) –
Я согласен с @ DieterLücking, либо дизайн, либо тег вводят в заблуждение. Этот подход будет сильно отличаться в зависимости от истинного целевого языка. – Chad