comment placer des tableaux en paramètre et les retourner?

comment placer des tableaux en paramètre et les retourner? - C++ - Programmation

Marsh Posté le 05-12-2005 à 14:21:31    

bonjour a tous,  
voici mon algo:  
 
void init_spectre (float signal_disret[N], float spectre [N][2])  
fonction qui initialise les 2 tableaux.  
signal_discret : valeur cherchée ds un fichier wave  
spectre : initialisé a 0  
petite précision:  
le 1er tableau, je l'utilise dans une autre fonction qui effectue un calcul de FFT (d'ou le fait que je veuille le retourner) et le 2e est mon résultat
comment dois-je faire?  
 
merci a tous

Reply

Marsh Posté le 05-12-2005 à 14:21:31   

Reply

Marsh Posté le 05-12-2005 à 17:31:56    

on ne peut pas passer de tableau en paramètre d'une fonction (ni même en type de retour), ca passe par des pointeurs mais la syntaxe te le cache.
 
Mais ... En quoi cela te pose-t-il problème ?

Reply

Marsh Posté le 05-12-2005 à 17:50:48    

utilsier std::vector<> :o

Reply

Marsh Posté le 06-12-2005 à 14:24:32    

tu fais  
float tab1[50];
float tab2[50];
tab1 est en fait une adresse (un pointeur), *tab1 est equivalent à tab1[0].
donc si tu declare ta fonction comme ca :function(float * pointeurTab1, float * pointeurTab2)
 
tu pourras faire function(tab1,tab2) directement et ta function pourra modifier tes tableaux , par contre je te conseille de passer les longueurs des tableau en parametre en + des pointeurs car tu n'a aucune info la dessus avec juste un pointeur,  
 
void function(float * pointeurTab1, float * pointeurTab2, int nbElement1, int nbElement2)

Reply

Marsh Posté le 06-12-2005 à 14:43:09    

POINTEUR != TABLEAU :fou:
 
Au pire fais ça , au moi c'est propre :
 

Code :
  1. template<size_t N> void func( const float (&tab)[N] )
  2. {
  3.    // whatever
  4. }


Message édité par Joel F le 06-12-2005 à 14:43:27
Reply

Marsh Posté le 09-12-2005 à 10:45:26    

mais comment je fais pr recuperer mes donnees pour effectuer ma fft dessus si je peux ni mettre de tableau en parametre ni les retourner? les pointeurs servent a pointer des tableaux, non?

Reply

Marsh Posté le 09-12-2005 à 10:49:11    

j'ai fais ca:
*

Code :
  1. int N;
  2. int * signal_discret = new int [N];
  3. vector<vector<int>> spectre(N,vector<int>(2));
  4. int * init_spectre(float signal_discret[], float spectre[][2], int N)
  5. { //bla bla
  6. return spectre [][];
  7. delete [] signal_discret;
  8. }

Reply

Marsh Posté le 09-12-2005 à 12:31:00    

relis la doc sur les vectors [:pingouino]
 
(edit : typo :o )


Message édité par theshockwave le 09-12-2005 à 12:31:19
Reply

Sujets relatifs:

Leave a Replay

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