title: A general question regarding the correct way to implement a dictionary data structure
body: <p>in any dictionary data structure there is an add_to_ds function which receives the data
  needed to insert as a parameter.
  the question is this:should the add_to_ds get the object it self (type T) and do the memory allocation,or should the add_to_ds get a pointer to object and just insert the pointer (type T*,whoever uses the DS does the memory allocation).</p>
  
  <p>what is the right way do do it,and why ?</p>