i write a stack class in c++ (shown below) but it is static and sure it uses lots of memory's. how can i make it dynamic so when ever it need it add some memory to the object and when ever i pop something the memory automatically delete?
template <class T>
class stack
{
private:
    T value[512];
    uint16_t length;
public:
    stack()
    {
        length=0;
    }
    stack(T _input)
    {
        value[0]=_input;
        length=1;
    }
    bool push(T _input)
    {
        if(length+1<512)
        {
            value[++length]=_input;
            return true;    
        }
        else
            return false;
    }
    T pop()
    {
        return value[length--];     
    }
    T peak()
    {
        return value[length];   
    }
    bool has_data()
    {
        return (length>0?true:false);
    }
};
 
     
     
     
    