En C, sé que puedo hacer una serie como esta¿Se pueden (re) establecer todos los valores de una matriz en una línea (después de que se haya inicializado)?
int myarray[5] = {a,b,c,d,e};
Sin embargo, imaginar la matriz ya estaba inicializado como
int myarray[5];
y luego en algún momento después, me quería establecer/cambiar todos los valores sin ir
myarray[0] = a;
myarray[1] = b;
myarray[2] = c;
myarray[3] = d;
myarray[4] = e;
, sino más bien, algo más parecido a
myarray = {a,b,c,d,e};
La razón por la que pido esto es porque si Declaro mi arsenal en el montón, voy a inicializar la matriz como:
int* myarray = malloc(5*sizeof(int));
Entonces me gustaría ser capaz de entrar en todos los valores de una línea (principalmente para hacer que mi código parezca más limpio)
¿No es esto solo C99? –
Sí. Pero cuando alguien da una respuesta de C++ usando plantillas, ¿requiere un comentario que requiera C++ 98? O cuando uso un prototipo de función en C, ¿debo mencionar que no funcionará en las implementaciones anteriores a ANSI C? C99 ** es ** el lenguaje C actual. –
@R .: Desafortunadamente, muchas personas están atrapadas con C89, p. Microsoft todavía no tiene soporte C99 en Visual Studio, y muchos estudiantes todavía tienen que usar compiladores anticuados como Turbo C. Por lo tanto, probablemente no esté justificado suponer que la mayoría de las personas puedan usar funciones específicas de C99. –