Tableau non contraint en C ???

Tableau non contraint en C ??? - C - Programmation

Marsh Posté le 28-08-2006 à 20:28:33    

Bonjour à tous  :hello:  
 
J'aurais besoin pour un programme que je viens de commencer en C d'utiliser des tableaux non contraints, comme en ADA ...
 
En gros une fonction va me retourner un tableau, de longueur variable, et une autre fonction récupérer ce tableau pour faire autre chose ...
 
Ca existe en C ? ou il faut que je trouve une autre solution ?  :??:  
 
Merci à ceux qui me répondront  :jap:

Reply

Marsh Posté le 28-08-2006 à 20:28:33   

Reply

Marsh Posté le 28-08-2006 à 20:52:38    

en C, il faut passer par une structure contenant :
 
- un pointeur vers les données
- la taille effective du tableau
 
et se donner les fonctiosn nécessaires à la manipualtion de cette structure
 

Code :
  1. typedef struct unconstrained_float_array
  2. {
  3.    float* values;
  4.    size_t  length;
  5. } uf_array;
  6. uf_array* uf_create_array( size_t sz )
  7. {
  8.    uf_array* a = malloc( sizeof uf_array );
  9.    a->values = malloc( sz*sizeof(float);
  10.    a->length = sz;
  11.    return a;
  12. }


 
etc ... avec les bons contrôels de tailles, d'existence etc ...

Reply

Marsh Posté le 28-08-2006 à 20:57:56    

Arf ... et donc pour une matrice il me faut des pointeurs vers des tableaux de pointeurs ... :/

Reply

Marsh Posté le 28-08-2006 à 20:58:52    

kamykaze a écrit :

Arf ... et donc pour une matrice il me faut des pointeurs vers des tableaux de pointeurs ... :/


C'est une solution.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-08-2006 à 20:59:22    

Ok, bon bah je vais faire comme ca :|
 
Merci à vous deux ;)

Reply

Marsh Posté le 28-08-2006 à 22:01:07    

kamykaze a écrit :

Arf ... et donc pour une matrice il me faut des pointeurs vers des tableaux de pointeurs ... :/


Tu peut aussi stocker uen matrice N*M dans un tabelau de N*M éléments et utilsier une chtite formule pour passer de m(l,c) à m[i]

Reply

Marsh Posté le 28-08-2006 à 22:01:31    

Emmanuel Delahaye a écrit :

C'est une solution.


J'ai dis une bétis eplus haut ?  :sweat:

Reply

Marsh Posté le 28-08-2006 à 22:22:05    

Joel F a écrit :

J'ai dis une bétis eplus haut ?  :sweat:


Non, c'est une autre solution.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-08-2006 à 23:40:10    

glib / g_array

Reply

Marsh Posté le 30-08-2006 à 20:23:23    

Taz > :??:
 
Joel F > Ouais, cette solution me plait bien, ca m'évitera de jongler avec trop de pointeurs :)


Message édité par kamykaze le 30-08-2006 à 20:24:56
Reply

Marsh Posté le 30-08-2006 à 20:23:23   

Reply

Marsh Posté le 30-08-2006 à 21:53:32    

t'es trop fatigué pour tapper glib dans google ?

Reply

Marsh Posté le 01-09-2006 à 12:30:46    

Taz a écrit :

t'es trop fatigué pour tapper glib dans google ?


 
Et toi trop fatigué pour faire une phrase complète ? ;)

Reply

Marsh Posté le 01-09-2006 à 12:56:11    

kamykaze a écrit :

Et toi trop fatigué pour faire une phrase complète ? ;)


Qu'est-ce qui manque ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

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