Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Помогите разобраться с написанием стека  (Прочитано 491 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Пишу интерпретатор. Чтобы пойти дальше вывода текста, понадобился стек. Он уже есть, но только для int. Писать символы в ячейки по 4 байта неэкономно.
Хочу выделить кусок памяти, куда можно записать что угодно - и каждый элемент будет занимать столько места, сколько положено его типу.
Как такое осуществить?

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: Помогите разобраться с написанием стека
« Ответ #1 : 14 Февраля 2011, 21:47:27 »
Так это список называется, что ли? или deck?

В общем как-то так: (указатель на следующий элемент)(сам элемент)(указатель на ещё следующий эелемент)(ещё элемент)(..)(..)(NULL)

Правда, по одному символу хранить в такой конструкции еще менее экономно, чем в вашем стеке (особенно на 64-битной системе :2funny:). А вот строки символов — очень даже ничего.

Можно еще использовать ASCIIZ-строки. UTF-8 в них тоже можно записывать. Но это не очень эффективно.

Ещё можно использовать char* array[]; — это как раз массив строк.

НО!

Во-первых, в Плюсах же должно быть какое-то сто раз обмусоленное решение для таких вещей.
Во-вторых, подобные вещи разжеваны в учебниках 100500 раз. Мне кажется, именно в вашем случае изобретать велосипед — 100% терять время.
Делюсь знаниями, но их у меня мало!

 

Страница сгенерирована за 0.022 секунд. Запросов: 21.