Un tableau statiqu ne doit il pas etre initialisé avec une const [Résolu]

Messages postés
47
Date d'inscription
vendredi 18 février 2005
Dernière intervention
7 janvier 2018
-
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 !
Afficher la suite 

Votre réponse

4 réponses

Messages postés
15863
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Bonjour,

Dans ton code ton tableau n'est pas statique, tu n'as même pas de classe...
Commenter la réponse de KX
Messages postés
47
Date d'inscription
vendredi 18 février 2005
Dernière intervention
7 janvier 2018
0
Merci
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 ".
Commenter la réponse de xbabilone
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 novembre 2018
0
Merci
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
Commenter la réponse de cptpingu
0
Merci
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 .
Commenter la réponse de xbabilone

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.