Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1227 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  signification de la double etoile **

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

signification de la double etoile **

n°564235
bleuerouge
Posté le 11-11-2003 à 20:21:42  profilanswer
 

Comme dans ce code ,car je ne comprend pas tres bien comment faire une alloction dyn de tableau.
 
Ne pourrions nous pas ecrire directement dans ConstruitEtoiles():
Etoiles=new TEtoile*[nbetoiles];
 

Code :
  1. class TForm1 : public TForm
  2. {
  3.     //...
  4.     public:
  5.     TEtoile **Etoiles;
  6.     void ConstruitEtoiles(const int nbetoiles);
  7.     void LibereEtoiles();
  8.     //...
  9. void ConstruitEtoiles(const int nbetoiles)
  10. {
  11.     Etoiles=new Etoile*[nbetoiles];
  12.     for (int i=0; inbetoiles; i++)
  13.         Etoiles[i]=new Etoile;
  14. }
  15. };


Message édité par bleuerouge le 11-11-2003 à 20:58:27
mood
Publicité
Posté le 11-11-2003 à 20:21:42  profilanswer
 

n°564236
chrisbk
-
Posté le 11-11-2003 à 20:24:13  profilanswer
 

mauvaise sous cat :O
 
ouais t'aurais pu, mais bon, sdepend ske tu veux faire, koi, jveux dire

n°564256
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-11-2003 à 20:41:12  profilanswer
 

Et faut pas mettre de [...] dans les titres (ici "[débutant]" parce que ça cache le nom de la sous-cat dans laquelle est le topic)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°564258
bleuerouge
Posté le 11-11-2003 à 20:41:40  profilanswer
 

chrisbk a écrit :

mauvaise sous cat :O
 
ouais t'aurais pu, mais bon, sdepend ske tu veux faire, koi, jveux dire
 


 
J'ai ce code

Code :
  1. struct Tjoueur {
  2.                 char nomdujoueur [20];
  3.                 int jeux;
  4.                 int point;
  5.                 };
  6. void init_jeux(void)
  7. {
  8.     int nombre_de_joueur; // nombre de joueur
  9.     printf("Combien de joueur :" );
  10.     scanf ("%d",&nombre_de_joueur);
  11.     joueur= new Tjoueur*[nombre_de_joueur];


 
mais a la complile j'ai:
 
"main.cpp": E2451 Undefined symbol 'joueur' in function init_jeux() at line 61
 
le but est tout simplement de crée un tableau joueur de Tjoueur avec le nombre d'iteration de nombre_de_joueur

n°564262
schnapsman​n
Zaford Beeblefect
Posté le 11-11-2003 à 20:43:21  profilanswer
 

bleuerouge a écrit :


TJoueur** joueur= new Tjoueur*[nombre_de_joueur];


 :o


Message édité par schnapsmann le 11-11-2003 à 20:49:03

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°564285
bleuerouge
Posté le 11-11-2003 à 20:56:41  profilanswer
 

Ok comme ca le compilateur le prend, mais pourqoui deux etoile ?
concretement pour comprendre, a quoi ça sert de declarer de cette facon ??

n°564288
kadreg
profil: Utilisateur
Posté le 11-11-2003 à 20:57:34  profilanswer
 

bleuerouge> C'est quoi une seule étoile ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°564294
schnapsman​n
Zaford Beeblefect
Posté le 11-11-2003 à 20:59:30  profilanswer
 

soit T un type C++.
 
Le type retourné par "new T[N]" est "un pointeur sur T", à savoir "T*".
 
Donc le type de retour de "new T*[N]" est "T**".
etc


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°564297
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-11-2003 à 21:01:14  profilanswer
 

bleuerouge a écrit :

Ok comme ca le compilateur le prend, mais pourqoui deux etoile ?
concretement pour comprendre, a quoi ça sert de declarer de cette facon ??


ça veut dire que tu déclares un pointeur sur un pointeur. Et comme un pointeur est aussi l'adresse du 1er élément d'un tableau, ça veut aussi dire que tu déclares un pointeur sur un tableau de pointeurs d'objets Etoile !


---------------
J'ai un string dans l'array (Paris Hilton)
n°564385
bleuerouge
Posté le 11-11-2003 à 21:36:33  profilanswer
 

Harkonnen a écrit :


ça veut dire que tu déclares un pointeur sur un pointeur. Et comme un pointeur est aussi l'adresse du 1er élément d'un tableau, ça veut aussi dire que tu déclares un pointeur sur un tableau de pointeurs d'objets Etoile !


 
bon ok ,mais pour l'initialisation avec new
 

Code :
  1. // Initialisation du nom
  2. for (int boucle=0;boucle<nombre_de_joueur;boucle++)
  3.         {
  4.         printf("Nom du joueur %d:",boucle);
  5.         scanf("%c",&joueur[boucle]->nomdujoueur);
  6.         };


 
Or ca passe bien a la compile ,mais a l'execution ,for me saute un iteration et a l'insertion du premeir nom j'ai un acces violation avec fermeture de l'app. ,doijent utilisez un sizeof ou autre malloc ???

mood
Publicité
Posté le 11-11-2003 à 21:36:33  profilanswer
 

n°564645
schnapsman​n
Zaford Beeblefect
Posté le 12-11-2003 à 00:19:12  profilanswer
 

niet good tout ça
 
scanf("%s",joueur[boucle]->nomdujoueur); [:aloy]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°564646
chrisbk
-
Posté le 12-11-2003 à 00:20:12  profilanswer
 

je sens la profonde incompréhension de ce qu'est un pointeur

n°564652
schnapsman​n
Zaford Beeblefect
Posté le 12-11-2003 à 00:25:44  profilanswer
 

pourtant, c'est ballot  :fou:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°564716
bleuerouge
Posté le 12-11-2003 à 09:22:01  profilanswer
 

en corrigeant de cette facon ,cela regle certains problemes:

Code :
  1. printf("Combien de joueur :" );
  2.     scanf ("%d",&nombre_de_joueur);
  3.     Tjoueur** joueur= new Tjoueur*[nombre_de_joueur];
  4.     for (int boucle=0;nombre_de_joueur;boucle++)
  5.         {
  6.         printf("Nom du joueur %d:",boucle);
  7.         //scanf("%s",&joueur[boucle]->nom_du_joueur);
  8.         scanf("%s",joueur[boucle]->nomdujoueur);
  9.         };
  10.     };


 
mais j'ai toujours un acces violation a l'execution


Message édité par bleuerouge le 12-11-2003 à 09:22:38
n°564719
bleuerouge
Posté le 12-11-2003 à 09:23:42  profilanswer
 

SchnapsMann a écrit :

niet good tout ça
 
scanf("%s",joueur[boucle]->nomdujoueur); [:aloy]


 
marche pas le compilo me repond alors
 
"main.cpp": E2316 'nomdujoueur' is not a member of 'Tjoueur' in function init_jeux() at line 69

n°564720
Moktar1er
No one replies...
Posté le 12-11-2003 à 09:24:43  profilanswer
 

c'est logique que ça plante, tu alloues un tableau de pointeurs...
donc dans ton scanf tu accèdes à un indice de ton tableau, donc à un pointeur. Or, seul ton tableau est alloué, pas les pointeurs contenus dedans...
Tu devrais rajouter juste après le for:

Code :
  1. joueur[boucle] = new Tjoueur;


Message édité par Moktar1er le 12-11-2003 à 09:25:06
n°564734
chrisbk
-
Posté le 12-11-2003 à 10:12:49  profilanswer
 

mondieumondieumondieu

n°564744
Moktar1er
No one replies...
Posté le 12-11-2003 à 10:20:54  profilanswer
 

http://perso.wanadoo.fr/atil/forum/stombe.gif

n°564760
nraynaud
lol
Posté le 12-11-2003 à 10:49:36  profilanswer
 

* est un constructeur de types unaire (en sémantique statique, car mettre une sémantique dynamique là-dessus, la recherche universitaire est encore en train d'essayer).
 
 
edit : comment ça je sors ?


Message édité par nraynaud le 12-11-2003 à 10:50:00

---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  signification de la double etoile **

 

Sujets relatifs
[css] Double espace entre les motsarrondir un double
[HTML] Supprimer une double bordurePb de convertion de double en string :/
lien pour signification des messages d'erreurs[Java] Question simple transformer un Double
[MySQL] une requête avec "double classement": possible??[jbuilder] problemes de double buffering
regrouper les valeur en double d'un même tableau...Le menu deroulant double la hauteur de ligne de mon tableau
Plus de sujets relatifs à : signification de la double etoile **


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR