I can't really understand the difference between Dynamic and static allocation,they say Dynamic allocation happens while executing the program and static only while compiling and we can't allocate manually while execution but,
#include <iostream>
using namespace std;
int main()
{
   int size , a = 0;
   cout << "Enter the size of Array: ";
   cin >> size;
   int A[size][size];
   for(int i = 0 ; i < size ; i++)
   {
        for(int j = 0 ; j < size ; j++)
            cout << a++ << '\t';
        cout << endl;
    }
    system("pause");
    return 0;
}
This program will allocate the Array size while execution.
 
    