Общий вопрос относительно правильного способа реализации структуры данных словаря - PullRequest
0 голосов
/ 14 мая 2011

в любой структуре данных словаря есть функция add_to_ds, которая получает данные необходимо вставить в качестве параметра. вопрос в следующем: должен ли add_to_ds получить сам объект (тип T) и выполнить выделение памяти, или add_to_ds получить указатель на объект и просто вставить указатель (тип T *, тот, кто использует DS, выполняет выделение памяти ).

как правильно это сделать и почему?

1 Ответ

1 голос
/ 14 мая 2011

Как правило, нет правильного / неправильного способа сделать это.Если вы доверяете вызывающей стороне не изменять память, вы можете хранить указатель.Если, однако, вы не укажете это в своем интерфейсе, вам придется дублировать память.

  • Если вы позволите им вводить указатели, они будут отвечать за освобождение памяти, не касаясь ее и т. Д.
  • Если вы не доверяете им, вам придется освободить память, вам придется возвращать копии сохраненных элементов (в противном случае, если вы вернете указатель, они могут освободить его /измени это)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...