[C++] Pointeurs sur pointeurs

Pointeurs sur pointeurs [C++] - C++ - Programmation

Marsh Posté le 28-05-2002 à 05:20:48    

Code :
  1. Question simple, j'ai une variable comme ca:
  2. CBlocMapBase **Blocs;
  3. Le but c'est d'avoir un tableau dynamique de pointeurs sur la classe CBlocMapBase.
  4. Mais le problème c'est que je n'arrive pas à crée le tableau  :(
  5. Voici comment je m'y prend:
  6. *Blocs = new CBlocMapBase[25];
  7. Mais ca me donne une erreur à l'execution... Suis-je dans la bonne voie?

 

[jfdsdjhfuetppo]--Message édité par i20 le 28-05-2002 à 05:21:03--[/jfdsdjhfuetppo]


---------------
No fucking refound :fou:
Reply

Marsh Posté le 28-05-2002 à 05:20:48   

Reply

Marsh Posté le 28-05-2002 à 08:02:31    

> Suis-je dans la bonne voie?
non.
 
CBlocMapBase **Blocs;
 
Blocs = new CBlocMapBase[25];
for (int i=0; i<25; i++)
{
    Blocs[i] = new CBlocMapBase();
}
 
//
// ...
//
 
for (int j=0; i<25; i++)
{
    delete Blocs[i];
    Blocs[i] = NULL;
}
delete [] Blocs;
Blocs = NULL;
 
 
 
 
Il faut faire les choses dans l'ordre.
Tu alloues d'abord ton tableau de pointeurs. En ensuite seulement tu initialise tes pointeurs.

Reply

Marsh Posté le 28-05-2002 à 08:21:35    

SoWhatIn22 a écrit a écrit :

> Suis-je dans la bonne voie?
non.
 
CBlocMapBase **Blocs;
 
Blocs = new CBlocMapBase[25];
for (int i=0; i<25; i++)
{
    Blocs[i] = new CBlocMapBase();
}
 
//
// ...
//
 
for (int j=0; i<25; i++)
{
    delete Blocs[i];
    Blocs[i] = NULL;
}
delete [] Blocs;
Blocs = NULL;
 
 
 
 
Il faut faire les choses dans l'ordre.
Tu alloues d'abord ton tableau de pointeurs. En ensuite seulement tu initialise tes pointeurs.  




 
On ne peut pas faire ca, c'est un ** pas *, donc le compilateur il veut pas  :sweat:


---------------
No fucking refound :fou:
Reply

Marsh Posté le 28-05-2002 à 08:41:31    

SoWhatIn22 a écrit a écrit :

> Suis-je dans la bonne voie?
non.
 
CBlocMapBase **Blocs;
 
[G]Blocs = new CBlocMapBase[25];[/G]
for (int i=0; i<25; i++)
{
    Blocs[i] = new CBlocMapBase();
}
 
//
// ...
//
 
for (int j=0; i<25; i++)
{
    delete Blocs[i];
    Blocs[i] = NULL;
}
delete [] Blocs;
Blocs = NULL;
 
 
 
 
Il faut faire les choses dans l'ordre.
Tu alloues d'abord ton tableau de pointeurs. En ensuite seulement tu initialise tes pointeurs.  




 
Alors faut peut être plutot faire:

Code :
  1. CBlocMapBase **Blocs;
  2. Blocs = new (CBlocMapBase*)[25];
  3. for (int i=0; i<25; i++)
  4. {
  5.     Blocs[i] = new CBlocMapBase();
  6. }
  7. //
  8. // ...
  9. //
  10. for (int j=0; i<25; i++)
  11. {
  12.     delete Blocs[i];
  13.     Blocs[i] = NULL;
  14. }
  15. delete [] Blocs;
  16. Blocs = NULL;

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 28-05-2002 à 08:41:53--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 28-05-2002 à 08:48:38    

el_gringo a écrit a écrit :

 
 
Alors faut peut être plutot faire:

Code :
  1. CBlocMapBase **Blocs;
  2. Blocs = new (CBlocMapBase*)[25];
  3. for (int i=0; i<25; i++)
  4. {
  5.     Blocs[i] = new CBlocMapBase();
  6. }
  7. //
  8. // ...
  9. //
  10. for (int j=0; i<25; i++)
  11. {
  12.     delete Blocs[i];
  13.     Blocs[i] = NULL;
  14. }
  15. delete [] Blocs;
  16. Blocs = NULL;

 
 
 




 
syntax error : missing ';' before '[' :sweat:

 

[jfdsdjhfuetppo]--Message édité par i20 le 28-05-2002 à 08:49:36--[/jfdsdjhfuetppo]


---------------
No fucking refound :fou:
Reply

Marsh Posté le 28-05-2002 à 08:51:07    

au pif :
 
Blocs = new *CBlocMapBase[25];  ?


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 28-05-2002 à 08:55:55    

i20 a écrit a écrit :

 
 
syntax error : missing ';' before '[' :sweat:  




 
ha ouais, mets pas les parenthèses autour de CBlocMapBase*
ce qui donne:

Code :
  1. Blocs = new CBlocMapBase*[25];

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 28-05-2002 à 08:56:45--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 28-05-2002 à 09:00:17    

el_gringo a écrit a écrit :

 
 
ha ouais, mets pas les parenthèses autour de CBlocMapBase*
ce qui donne:

Code :
  1. Blocs = new CBlocMapBase*[25];

 
 
 




 
 
ouiiiiiiiiiiiiiiiiii j'étais sur d'avoir essayer mais non, mais maintenent ca fonctione, je vous aimes  :love:  :love:  :love:


---------------
No fucking refound :fou:
Reply

Marsh Posté le 28-05-2002 à 09:07:38    

i20 a écrit a écrit :

 
ouiiiiiiiiiiiiiiiiii j'étais sur d'avoir essayer mais non, mais maintenent ca fonctione, je vous aimes  :love:  :love:  :love:  




 
Ola, ola, pas trop de remerciement. L'amour, on va dire que tu le garde pour ta copine.
Je me contenterai très bien de ton éternelle reconnaissance, et de ton dévouement le plus total ! :D

Reply

Marsh Posté le 28-05-2002 à 09:13:36    

el_gringo a écrit a écrit :

 
 
Ola, ola, pas trop de remerciement. L'amour, on va dire que tu le garde pour ta copine.
Je me contenterai très bien de ton éternelle reconnaissance, et de ton dévouement le plus total ! :D  




 
Ca faisait un bout que je me prenais la tête avec ce problème  :fou:  
Mais la je suis content et ya le manque de someil qui influt sur mon comportement  :lol:


---------------
No fucking refound :fou:
Reply

Sujets relatifs:

Leave a Replay

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