Multidimensional array initialization

  c++, multidimensional-array

I am currently recreating a graph class that can display an adjacency matrix and find its respective DFS and BFS. While looking at reference code they used the following code to generate a multidimensional array.

I was under the assumption that the only way to make a multi dimensional array was:
data_type array_name[size1][size2]….[sizeN];

Is the pointer at the initialization setting up a multidimensional array such that each element in "array 1" contains another array "array 2?" Is this a dynamic array? And what would be their purpose for using this instead of initializing it the other way?

Code Mentioned:

            adjmatrix = new int*[vertexCount];
            for(int i=0;i<vertexCount;i++){
                adjmatrix[i] = new int[vertexCount];

Source: Windows Questions C++