int r, c;
cin >> r >> c;
I'm not sure what the point of runtime allocation is.
The goal is to allocate memory during runtime, but we're doing the same thing in the code above.
When this section of code is executed, the input sizes are specified at runtime, and the matrix is allocated memory based on the size of the rows and columns, so how is this allocation static or compile time?