I feel you , bruh . I totally feel you . <| sep |> I love the fact from everybody is Truthful <| sep |> In 20 years I think cancer to our kids will be like to us getting vacined for tuberculosis , that easy to get rid of . IMO <| sep |> Nice piece . I haven ' t seen this model before actually , but I like it . <| sep |> I think you still need a personinitpersont and persondeinitpersont function , but my question is whether initializingtearing down should also be responsible for allocatingfreeing the instance . In performancecritical applications , you might not want to incur a malloc every time you create one of these things perhaps the user has an instance pool , or some other way to get one . Of course there ' s no reason why you couldn ' t have a personcreate as well which internally just calls personinit , but then there ' s still no way to hide the structure members . I ' m not especially advocating either approach over the other , more interested in provoking discussion on relative merits of each . I personally have never really arrived at a satisfactory conclusion . Having the library handle allocation feels cleaner , but also less flexible .