¿Se permite el tamaño de matriz en tiempo de ejecución sin asignación dinámica?
He estado usando C ++ durante algunos años, y hoy vi un código, pero ¿cómo puede ser perfectamente legal?
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;
}
Compilado bajo GCC.
¿Cómo se puede determinar el tamaño en tiempo de ejecución sinnew
omalloc
?
Solo para verificar, busqué en Google algunos y todos los códigos similares a los míos dicen que dan un error de tamaño de almacenamiento.
Even Deitel's C ++ Cómo programar p. 261 estados bajo Error de programación común 4.5:
olo se pueden usar constantes para declarar el tamaño de los arreglos automáticos y estáticos.
Iluminame.