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

  FORUM HardWare.fr
  Programmation
  C

  Tableau 2 dim dans une structure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau 2 dim dans une structure

n°1580288
Flavio1977
Posté le 28-06-2007 à 11:41:00  profilanswer
 

Bonjour , j'ai un soucis avec mon programme.
 
Voici ma structure :
 
typedef struct
{int n_lig;
 int n_col;
float **pp_niv;
int **pp_coord_sommets;
float sommet;
}st_topo_region
 
 
je lis des données ds un fichier en le mettant dans un tableau deux dimensions:
 
st_topo_region **pp_region;
float **ppt;
pp_t=(float**)malloc(10*sizeof(float*));
*pp_t=(float*)malloc(10*sizeof(float));
 
for(j=0;j<10;j++)
  { fread(pp_t[j],sizeof(float),10;p_f);}
*pp_region.pp_niv=pp_t;
 
Mais j'ai une erreur sur la derniere ligne , je ne sais pas comment faire..
 
Eclairez moi.
 
Merci

mood
Publicité
Posté le 28-06-2007 à 11:41:00  profilanswer
 

n°1580293
zecrazytux
Posté le 28-06-2007 à 11:43:17  profilanswer
 

tu mettrait ton code dans les balises quivontbien et les erreurs du compilos, ça irait mieux, non ? :o


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1580297
Flavio1977
Posté le 28-06-2007 à 11:49:26  profilanswer
 

Erreur de compil.... le curseur s arrete sur l'egal et me dit error : illegal structure operation in fonction init_struct_region
 
donc , tout ce code est dans une fonction.

n°1580311
matafan
Posté le 28-06-2007 à 12:18:46  profilanswer
 

pp_region n'est pas une structure, tu ne peux donc pas lui appliquer l'opérateur ".". Ce que tu veux faire si j'ai bien compris ton bordel, c'est (*pp_region)->pp_niv=pp_t, ou bien (**pp_region).pp_niv=pp_t.

n°1580315
tropicano
Posté le 28-06-2007 à 12:23:14  profilanswer
 

Ca fait un petit moment que j'ai pas codé en C mais il y a pas un truc qui cloche là ?:

Code :
  1. st_topo_region **pp_region;
  2. /* ... */
  3. *pp_region.pp_niv=pp_t;


 
J'aurais plutôt tendance à écrire:

Code :
  1. st_topo_region **pp_region;
  2. /* ... */
  3. (*pp_region)->pp_niv=pp_t;


 
Ou encore:

Code :
  1. (*(pp_region[un_indice])).pp_niv=pp_t;
  2. pp_region[un_indice]->pp_niv=pp_t;


 
Mais bon ca fait un bon moment que j'ai pas manipulé de pointeur donc je me trompe peut-être.

n°1580551
Sve@r
Posté le 28-06-2007 à 19:24:54  profilanswer
 

Flavio1977 a écrit :


je lis des données ds un fichier en le mettant dans un tableau deux dimensions:
 

float **ppt;
pp_t=(float**)malloc(10*sizeof(float*));
*pp_t=(float*)malloc(10*sizeof(float));
 
for(j=0;j<10;j++)
  { fread(pp_t[j],sizeof(float),10;p_f);}
*pp_region.pp_niv=pp_t;



 
Tu n'alloues pas les pointeurs !!!
 
Ton premier pointeur "ppt" est bien alloué pour stocker 10 adresses de float. ok. Mais ensuite, tu n'alloues que la première de ces adresses pour pouvoir y stocker 10 floats. Les 9 autres adresses n'ont pas été allouées pourtant tu y mets des float !!!
 

float **ppt;
pp_t=(float**)malloc(10*sizeof(float*));
 
for(j=0;j<10;j++)
{
   pp_t[j]=(float*)malloc(10*sizeof(float));
   fread(pp_t[j],sizeof(float),10,p_f);
}


 
Sinon quand la taille est fixée (10x10) autant déclarer directement un tableau float ppt[10][10]...


Message édité par Sve@r le 28-06-2007 à 19:29:19

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  Tableau 2 dim dans une structure

 

Sujets relatifs
tableau et structureTableau dynamique dans une structure
[vb.net] access a un tableau a l'interrieur d'une structureTableau de structure
Probleme tableau 2 dimensions + structure en CTableau de structure
Tableau de structureCopie de tableau de structure de double dans un tableau char
passant d'un tableau en structure avec divEnregistrer dans un fichier un tableau de structure
Plus de sujets relatifs à : Tableau 2 dim dans une structure


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