xcode - Using *new in c++ -


this question has answer here:

i writing simple c++ program in xcode has 1 class message. in main want declare new message , add list messages. xcode suggesting use:

messages.push_front(*new message(messageid)); 

can explain *new does. dynamically allocating memory message object or creating instance of message on stack? have checked in xcode , there no memory leaks if use , not delete instance assume allocating on stack.

you allocating message dynamically on heap , dereference pass reference.

one of overloads of push_back push_back(const t& value), value first allocated on heap dereferenced , reference passed function.

now useless, directly allocate message(messageid) , pass method. in addition generating leak since there no delete associated new, , can't release since don't bind returned pointer anywhere.

in addition directly passing message(messageid) , possibly using emplace_back instead push_back save copy construction of object inside collection.


Comments

Popular posts from this blog

jquery - How do you format the date used in the popover widget title of FullCalendar? -

Bubble Sort Manually a Linked List in Java -

asp.net mvc - SSO between MVCForum and Umbraco7 -