Tableau 2 dim dans une structure - C - Programmation

Marsh Posté le 28-06-2007 à 11:41:00   

Reply

Marsh Posté le 28-06-2007 à 11:43:17    

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
Reply

Marsh Posté le 28-06-2007 à 11:49:26    

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.

Reply

Marsh Posté le 28-06-2007 à 12:18:46    

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.

Reply

Marsh Posté le 28-06-2007 à 12:23:14    

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.

Reply

Marsh Posté le 28-06-2007 à 19:24:54    

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.
Reply

Sujets relatifs:

Leave a Replay

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