Tableau[variable] incompatible en C++ ??? :| [Résolu]

Tableau[variable] incompatible en C++ ??? :| [Résolu] - C++ - Programmation

Marsh Posté le 19-07-2004 à 00:43:12    

Salut,
 
http://img18.exs.cx/img18/4204/constantes.jpg
 
Je voudrais savoir dites moi, pourquoi ca me sort ca ? En Pascal ce genre de manipulation passait impeccablement me semble t'il, à moins que je me trompe.
 
C'est une specification au C++, pourquoi ce genre de manip marcherait qu'en Delphi ?
 
Merci.


Message édité par Slide le 19-07-2004 à 20:49:31
Reply

Marsh Posté le 19-07-2004 à 00:43:12   

Reply

Marsh Posté le 19-07-2004 à 00:45:23    

oui c'est comme ça en C++
en C99 il y a les variables length array, mais bon...
 
utilise plutot le std::vector en C++


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 19-07-2004 à 01:00:07    

schnapsmann a écrit :

oui c'est comme ça en C++
en C99 il y a les variables length array, mais bon...
 
utilise plutot le std::vector en C++


 
Oki merci ;) (héhé le C99, c'est nouveau ca :D)
 
Edit : Desolé, je ne savais pas que le C99 c'etait un langage.
 
@++


Message édité par Slide le 19-07-2004 à 17:37:48
Reply

Marsh Posté le 19-07-2004 à 07:40:02    

mais même en C99 ça marche pas ... faut réfléchir 5 minutes les mecs putain :o

Reply

Marsh Posté le 19-07-2004 à 07:40:49    

Slide a écrit :

Oki merci ;) (héhé le C99, c'est nouveau ca :D)
 
@++

on a tous vu que t'es resté à l'époque préhistorique avec tes #include et tes jpeg

Reply

Marsh Posté le 19-07-2004 à 09:41:20    

nbval est une variable dont la valeur n'est pas connue a la compilation ... le tableau ne peut donc pas être construit.
 
#include <iostream> #include <cstdlib> sinon


Message édité par blackgoddess le 19-07-2004 à 09:54:40

---------------
-( BlackGoddess )-
Reply

Marsh Posté le 19-07-2004 à 09:51:50    

le pire c'est que dans son exemple nbval n'est même pas initialisé [:joce]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 19-07-2004 à 11:01:41    

il vaut mieux utiliser std::vector, mais si tu veux le faire à la main, il faudrait que tu fasses ça :
 

Code :
  1. class calcul { //note : en général on met des majuscules aux noms de classes...
  2. int nbval;
  3. int *val;
  4. public:
  5. calcul(int _nbval) {nbval=_nbval;val=new int[nbval];};  //création du tableau à la taille demandée
  6. ~calcul() {if(val) delete[] val;};  //si le tableau existe encore, il faut le détruire,  
  7.                  //car un tableau construit avec new n'est pas détruit automatiquement
  8. };


Message édité par yawen le 19-07-2004 à 11:02:24
Reply

Marsh Posté le 19-07-2004 à 11:07:12    

non, faudrait qu'il fasse tout sauf ça :o

Reply

Marsh Posté le 19-07-2004 à 11:12:02    

Taz : explique toi stp


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 19-07-2004 à 11:12:02   

Reply

Marsh Posté le 19-07-2004 à 11:14:27    

je suppose que Taz préconise d'utiliser un conteneur de la STL, qui évitera justement à Slide de se casser le cul à gérer  l'allocation et la libération de la mémoire


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-07-2004 à 11:14:30    

ben le pauvre Coplien il se retourne dans sa tombe

Reply

Marsh Posté le 19-07-2004 à 12:33:24    

Il manque déja l'opérateur d'affectation, le constructeur par défaut, le constructeur par recopie, et il faut que le destructeur soit virtuel...
Quant a Coplien, je savais pas qu'il était mort...


Message édité par Ace17 le 19-07-2004 à 12:33:57
Reply

Marsh Posté le 19-07-2004 à 13:09:24    

j'en sais rien en fait

Reply

Marsh Posté le 19-07-2004 à 14:57:25    

Taz a écrit :

non, faudrait qu'il fasse tout sauf ça :o


j'ai bien dis qu'il vaut mieux utiliser std::vector  :D  
 
je mettais juste ça puisque slide n'a pas l'air de connaitre du tout comment fonctionnent les tableaux en C
 

Citation :

Il manque déja l'opérateur d'affectation, le constructeur par défaut, le constructeur par recopie, et il faut que le destructeur soit virtuel...


tout à fais d'accord, mais ça dépend ce qu'il veut faire de sa classe... s'il n'en dérive rien, qu'il n'en fait pas de copie, et qu'il n'en fait des instances qu'avec le constructeur que j'ai mis, ça marche... mais c'est vrai que j'aurais dû préciser que mon exemple était incomplet  :jap:

Reply

Marsh Posté le 19-07-2004 à 14:59:18    

Slide a écrit :

En Pascal ce genre de manipulation passait impeccablement me semble t'il, à moins que je me trompe.


 
heu non
en Delphi tu fais ça il va aussi râler.
Ce que tu peux faire en Delphi c'est déclarer des tableaux sans taille (tableaux dynamiques), mais pas donner une taille issue d'une variable (venant d'une constante par contre ça passe évidemment).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 19-07-2004 à 16:33:58    

antp a écrit :

heu non
en Delphi tu fais ça il va aussi râler.
Ce que tu peux faire en Delphi c'est déclarer des tableaux sans taille (tableaux dynamiques), mais pas donner une taille issue d'une variable (venant d'une constante par contre ça passe évidemment).


 
Heu, j'ai du me melangé les pinceaux, c'est bien des tableaux dynamiques, mais c'est dommage que ca roule pas avec une variable, merci ANTP (et tout les autres!!), c'est la 1er fois que je fais du C++, et du Delphi j'en ai fait juste un peu, je ne suis pas un AS je l'admet, je sais bien aussi que je ne suis pas une fleche, on a tous fait des erreurs !! :D Et c'est certain que j'en fairrais d'autre ;)
 
Heu au faite, le C99, c'est un langage ?! Je pensais a une erreur de frape au debut.
 
Ps : Il faut bien apprendre un jour ou l'autre :)
 
@++

Reply

Marsh Posté le 19-07-2004 à 16:41:30    

C99 c'est la version du C datant de 1999, donc pas prise en compte par les vieux compilateurs C (ni par les compilateurs C++, du moins pas ceux de Borland).
 
Sinon comme ça a été suggéré dans le topic, std::vector c'est pas mal pour les tableaux dynamiques.

Reply

Marsh Posté le 19-07-2004 à 19:38:11    

yawen a écrit :

j'ai bien dis qu'il vaut mieux utiliser std::vector  :D  
 
je mettais juste ça puisque slide n'a pas l'air de connaitre du tout comment fonctionnent les tableaux en C
 

Citation :

Il manque déja l'opérateur d'affectation, le constructeur par défaut, le constructeur par recopie, et il faut que le destructeur soit virtuel...


tout à fais d'accord, mais ça dépend ce qu'il veut faire de sa classe... s'il n'en dérive rien, qu'il n'en fait pas de copie, et qu'il n'en fait des instances qu'avec le constructeur que j'ai mis, ça marche... mais c'est vrai que j'aurais dû préciser que mon exemple était incomplet  :jap:

je doute que tu maîtrise suffisemment pour détecter des affectations/copie sournoises. alors coplien ou STL

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed