Un tableau statiqu ne doit il pas etre initialisé avec une const

Résolu
xbabilone Messages postés 47 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 janvier 2018 - Modifié le 7 janv. 2018 à 12:59
 xbabilone - 7 janv. 2018 à 18:04
Bonjour, et bonne année !

Normalement ce petit code devrai generer une erreur de compilation pourtant rien et en plus il s'execute .


int main(void) 
{ 
 
    int n=0;
    cin>>n;
    int array[n];  
 
    return 0; 
} 

Dans mon livre c++ un tableau statique doit etre généré avec une constante .Alors qu'est ce qui ce passe ?

Merci pour les reponses !

4 réponses

KX Messages postés 16740 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 26 mai 2024 127
7 janv. 2018 à 12:59
Bonjour,

Dans ton code ton tableau n'est pas statique, tu n'as même pas de classe...
0
xbabilone Messages postés 47 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 janvier 2018 2
7 janv. 2018 à 14:32
Merci de ton attention !
Mais quand je dis " statique " je veux dire déclaré sur la pile et non pas le mot cléf " static ".
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié le 7 janv. 2018 à 17:16
De quelle année date ton livre de C++ ? :p
En C++, on écrirait int main() et non int main(void), et std::cin plutôt que cin.

Le VLA (variable length array) est disponible en C99, et certaines extensions C++ le supportent. Ce n'est pas officiel. Donc, ton compilateur doit le supporter. Si tu veux être plus strict, regarde les options du compilateur, qui te feront un warning pour tout ce qui n'est pas "standard".


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
0
Merci pour ta reponse .
Mon livre c'est " le langage c++ " dans la collection " le tout en poche " de Stephane Dupin qui est de 2003 .



Je suis sous ubuntu et je compile avec :
gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3) .


Et il se peut qu'a l'époque il utilisait une vieille version de c++ .
Je vais chercher un livre plus récent .
0
Rejoignez-nous