Why does it have 1000 elements?
class node
{
public:
std::vector<node*> symbs;
int count = 0;
node() : count(0), symbs(26, nullptr) {}
};
int main()
{
node *trees;
}
I can use node *trees = new node; and it's ok, but I don't want to clean memory. How can I do it differently?

You have uninitialized pointer which you use to access some random memory and get garbage result aka Undefined Behavior.
You can just create object, not pointer to it:
This object will be created at the point of definition and automatically destroyed at the end of the scope.
As for your vector, if your
nodeobject owns that sub-nodes it should contain a vector ofstd::unique_pointer<node>orstd::shared_pointer<node>depends on ownership. Note - ownership means that 2 nodes should not own each other, otherwise you will get cyclic refernce and memory leak. Using smart pointers you do not have to create and implement destructor and copy/move costructor etc.