He estado usando C++ durante algunos años, y hoy vi algunos códigos, pero ¿cómo puede ser esto perfectamente legal?¿Se permite el tamaño de la matriz en tiempo de ejecución sin asignación dinámica?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
Compiled under GCC.
¿Cómo se puede determinar el tamaño en tiempo de ejecución sin new
o malloc
?
Solo para verificarlo de nuevo, he buscado en Google algunos y todos los códigos similares a los míos afirman dar error de tamaño de almacenamiento.
Even Deitel's C++ Cómo Programar p. 261 estados en Error de programación común 4.5:
Solo se pueden usar constantes para declarar el tamaño de matrices automáticas y estáticas.
Enlight me.
nota de que DMA significa "acceso directo a memoria" - Creo que usted está planteando asignación dinámica –
C o C++? Elegir uno_. –
Nuevamente, elija uno: C o C++. Esta pregunta es explícita y solo acerca de C; no debería haber una etiqueta C++. –