|If I change the ObtainRequests function and create an object that points to the newly created reqNode after I've modified it, and use that in line 28 of the function, would that bypass the issue?|
That's what I did in the code I mentioned
creates a pointer (i.e. an object) that points to newnode.
What you could do is create the reqNode with malloc
). Then it will no longer get destroyed automatically. Instead it will be destroyed when you use free
if you used new
to create the object). In other words, every time you remove an element from the linked list you would have to remember to use free
) otherwise you'll have a "memory leak". This is something you should do from outside the linked list class template because it is the user of the linked list that decided he wanted to store pointers to "dynamically allocated objects".
Smart pointers such as std::unique_ptr can help with this but it doesn't work well with malloc
, and if your professor wants you to use malloc
I doubt he wants you to use smart pointers. Note that malloc
is quite rare to see in modern C++ code. It's more of a C thing. malloc
do not call constructors and destructors like new