小编Eri*_*ric的帖子

我在这里正确管理了内存吗?(简单的C++堆栈)

我是一个动态分配内存的完整菜鸟.这会有内存泄漏或任何其他内存问题吗?

#include <iostream.h>

template <class T> class stack
{
         struct node
         {
                T value;
                node* next;
         };

         public:
                stack()
                {
                       size = 0;
                }

                ~stack()
                {
                       while(size > 0)
                       {
                           node *n = top->next;
                           delete top;
                           top = n;
                           size--;
                       }
                }

                void push(T value)
                {
                     node *n = new node;
                     n->value = value;

                     if(size == 0)
                     {
                          top = n;
                     }
                     else
                     {
                         n->next = top;
                         top = n;
                     }

                     size++;
                }

                T pop()
                {
                       if(size<1)
                       {
                            std::cerr<<"Stack underflow"<<endl; …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

1
推荐指数
2
解决办法
159
查看次数

标签 统计

c++ ×1

memory-management ×1