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

  FORUM HardWare.fr
  Programmation
  C++

  [C++Builder] Matrice de structures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++Builder] Matrice de structures

n°129144
lkolrn
<comment ça marche?>
Posté le 22-04-2002 à 01:44:17  profilanswer
 

J'utilise dans un projet C++Builder une structure définie comme telle:
typedef struct Case
{
    String nom;
    int num;
    char el;
}
    tCase, * pCase;

 
j'aimerais que cette struct soit manipulée sous forme d'une matrice 2d, donc je la déclare:
mat2d ** pCase;
 
et l'initialise comme suit:
int matLarg=800;
int matHaut=600;
int cpt;
 
mat2d=new pCase*[matLarg];
for (cpt=0; cpt < matLarg; cpt++)
    mat2d[cpt]=new pCase[matHaut];

 
Apparemment ca marche po, cad ke le programme plante à la boucle for...
Klk1 connait-il l'origine de l'erreur...?
 
MERCI D'AVANCE

mood
Publicité
Posté le 22-04-2002 à 01:44:17  profilanswer
 

n°129372
mog
KUPO !
Posté le 22-04-2002 à 16:09:15  profilanswer
 

Je pense que tu as déjà un soucis à ce niveau:
mat2d ** pCase correspond à mat2d *** tCase = matrice 3D

 

[jfdsdjhfuetppo]--Message édité par Mog le 22-04-2002 à 16:09:39--[/jfdsdjhfuetppo]

n°129490
lkolrn
&lt;comment ça marche?&gt;
Posté le 22-04-2002 à 20:08:13  profilanswer
 

Donc tu dis k'on peut faire une matrice 2d de structures directement, pas obligatoirement une matrice 2d de pointeurs sur structure...? (je viens d'essayer, mais ca a toujours l'air de ne pas passer...)

 

[jfdsdjhfuetppo]--Message édité par LKoLRn le 22-04-2002 à 21:20:27--[/jfdsdjhfuetppo]

n°129565
mog
KUPO !
Posté le 23-04-2002 à 08:39:10  profilanswer
 

Une structure n'est pas un objet, il n'y a donc pas lieu de l'instancier avec un "new".
 
Pour ton cas il te suffit de faire:
typedef struct Case {  
   String nom;  
   int num;  
   char el;  
} tCase;

et
tCase mat2d[800][600];

 

[jfdsdjhfuetppo]--Message édité par Mog le 23-04-2002 à 08:39:50--[/jfdsdjhfuetppo]

n°129577
lkolrn
&lt;comment ça marche?&gt;
Posté le 23-04-2002 à 09:12:37  profilanswer
 

ok, ca c pour une allocation statik... (en effet ça ça marche)
Mais il doit bien y avoir une façon de créer la matrice de manière dynamik, non...?

n°129588
mog
KUPO !
Posté le 23-04-2002 à 09:31:51  profilanswer
 

Oui dans ce cas il te faut créer une classe 'tCase' et des faire
 
tCase ** matrice;
 
for(int i = 0; i < matLarg; i++) {
  for(int j = 0; j < matHaut; j++) {
    matrice[i][j] = new tCase();
  }
}

 
Ca me parait correct (mon C++ est un rouillé)

n°129591
lkolrn
&lt;comment ça marche?&gt;
Posté le 23-04-2002 à 09:38:58  profilanswer
 

c fé, g testé, mais ca marche po:
 
typedef struct Case  
{  
   String nom;  
   int num;  
   char el;  
}  
   tCase;
 
tCase ** mat;
 
for (ln=0; ln < mLarg; ln++)
    for (col=0; col < mHaut; col++)
        mat[ln][col]=new tMonde;

 
Le compilo me dit: "Impossible de convertir Case* en Case"...
 
Par contre, si je déclare ma matrice comme ca:
tCase *** mat;
alors ca compile, mais ca tourne toujours po...
 
Donc ca a po avancé...!? HELP!!!

 

[jfdsdjhfuetppo]--Message édité par LKoLRn le 24-04-2002 à 11:07:50--[/jfdsdjhfuetppo]


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

  [C++Builder] Matrice de structures

 

Sujets relatifs
[C++ Builder] Composant sans aide !!![C++ Builder] Transparence 2 le retour
c++ buildercollaboration site web delphi, c++ builder et jbuilder
[C++ builder 6] y'a quoi sur les 6 CD de la version entreprise ???[C++ Builder] Pb dur à expliquer ...
[C++ Builder] API Window$ pour se mettre dans la systray[C++ Builder] classe pour representer un repertoire
[C++ Builder] Changer la résolution[C++ Builder 5] 3 questions faciles (sauf pour moi :D )
Plus de sujets relatifs à : [C++Builder] Matrice de structures


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