Me topé con un cuestionario que involucraba una declaración de matriz con diferentes tamaños. Lo primero que me vino a la mente es que necesitaría usar una asignación dinámica con el new
comando, así:
while(T--) {
int N;
cin >> N;
int *array = new int[N];
// Do something with 'array'
delete[] array;
}
Sin embargo, vi que una de las soluciones permitía el siguiente caso:
while(T--) {
int N;
cin >> N;
int array[N];
// Do something with 'array'
}
Después de un poco de investigación, leí que g ++ permite esto, pero me mantuvo pensando, ¿en qué casos es necesario usar la asignación dinámica? ¿O es que el compilador traduce esto como asignación dinámica?
La función de eliminación está incluida. Sin embargo, tenga en cuenta que la pregunta aquí no se trata de pérdidas de memoria.
fuente
std::vector
en su lugar (std::vector<int> array(N);
).new OBJ
directamente.