Permettant VLAs (de longueur variable tableaux) en MS Visual C++?

Comment puis-je activer l'utilisation de VLAs, de longueur variable des tableaux tels que définis dans C99, MS Visual C++ ou qui n'est pas du tout possible?

Oui, je sais que la norme C++ est basé sur C89 et que Blaise ne sont pas disponibles en C89 standard et ne sont donc pas disponibles en C++, mais MSVC++ est censé être un compilateur C aussi, un comportement qui peut être activée à l'aide de l' /TC compilateur paramètre (Compile as C Code (/TC)). Mais cela ne semble pas permettre à Blaise et le processus de compilation échoue avec les mêmes erreurs lors de la construction du C++(Compile as C++ Code (/TP)). Peut-être que MSVC++ le compilateur C est C89 conforme uniquement ou il me manque quelque chose(certains spéciales de construction ou de pragma/définir)?

Exemple de Code:

#include <stdlib.h>

int main(int argc, char **argv)
{
  char pc[argc+5];

  /* do something useful with pc */

  return EXIT_SUCCESS;
}

Les erreurs de compilation:

erreur C2057: attendu expression constante

erreur C2466: ne peut allouer un tableau de taille constante 0

erreur C2133: 'pc' : inconnu taille

C++ les utilisateurs doivent utiliser une std::vector au lieu d'un VLA. Les conseils n'aide pas à cette question en raison de la C exigence, cependant.

OriginalL'auteur Shinnok | 2011-03-09