Tengo una función simple en la que una matriz se declara con el tamaño dependiendo del parámetro que es int.El tamaño de la matriz C++ depende del parámetro de función provoca errores de compilación
void f(int n){
char a[n];
};
int main() {
return 0;
}
Esta pieza de código compila bien en GNU C++, pero no en MSVC 2005.
me sale el siguiente error de compilación:
.\main.cpp(4) : error C2057: expected constant expression
.\main.cpp(4) : error C2466: cannot allocate an array of constant size 0
.\main.cpp(4) : error C2133: 'a' : unknown size
¿Qué puedo hacer para corregir esto?
(Estoy interesado en hacer este trabajo con MSVC, sin necesidad de utilizar nuevos/delete)
Sí, pero asignar desde el montón, lo que "nuevo" hace, es muy diferente de asignar desde la pila, que es lo que el OP está tratando de hacer. (Podría tratarse de un código sensible al rendimiento que está intentando compilar). –
No hay tantas preocupaciones sobre el rendimiento por el momento, pensé que era natural trabajar ... pero si no es parte del estándar de C++ entonces entiendo – xxxxxxx
Re: _alloca: OP solo preguntó por obtener código equivalente trabajando en MSVC y sin usar new/delete. –