int [n] [m], donde n y m son conocidos en tiempo de ejecución
A menudo necesito crear una matriz 2D con ancho y alto (que sean n y m) desconocidos en el momento de la compilación, generalmente escribo:
vector<int> arr(n * m);
Y accedo a elementos manualmente con:
arr[j * m + i]
Recientemente me dijeron que en su lugar podría escribir:
int arr[n][m] // n and m still only known at runtime.
Así que aquí hay 2 preguntas:
¿Este comportamiento está permitido por el estándar C ++?¿Cómo debo pasar una matriz de este tipo a una función? g ++ informa que arr tiene tipoint (*)[n]
, pero de nuevo, n es dinámico y no se conoce fuera de la función donde se declara (main
)