C++ grammar is known to be undecidable (what a line does depends on the definition preceding it,so my guess may be not true).
verts** verts1
Is a declaration of a variable that - if dereferenced twice - will result into a
verts
value. So it is a "pointer to pointer to verts"
verts*(*verts1)
is the creation of a temporary object of type
verts*
, initialized with the pointer returned by
*verts1
.
(think to code like
point(2,3);
).
Allocation and deallocation are conceptually fine.
But -in fact- you're doing exacly what
std::vector<std::vector<vertexs> >
does by itself behind the scene.