2011-01-03 12 views
8

I se utilizó para el uso deInline array inicialización

new int[] {1,2,3,4,5}; 

para inicializar matriz. Pero parece que hoy en día, esto ya no funciona, tengo que indicar explícitamente cuántos elementos hay, con

new int[5] {1,2,3,4,5}; 

por lo compiladores olvidó cómo contar?

Y para hacer de esto una pregunta cerrada, ¿hay alguna manera de omitir la cantidad de elementos?

+0

es esta sintaxis 'new int [5] {1,2,3,4,5};' realmente disponible? – Dims

Respuesta

16

Esto nunca funcionó en la versión actual de C++, solo ha podido inicializar por cero (o no inicializar) matrices asignadas dinámicamente.

Lo que siempre ha trabajado es no asignada dinámicamente la inicialización del campo:

int myarray[] = {1, 2, 3, 4, 5}; 

Tal vez usted está confundiendo con esto?

Incluso en C++ 0x no es una sintaxis legal omitir el especificador de tamaño de matriz explícito en una nueva expresión.

+0

Sí, eso debe ser ... – Gzorg

2

C++ nunca ha permitido inicializar la matriz con un tamaño desconocido de elementos como el anterior. Las únicas 2 formas que conozco, es especificar el número de elementos o usar punteros.