Pointeurs vers tableau (C++)

Loufoca -  
 Loufoca -
Bonjour,

J'ai écrit un code qui tourne en utilisant des tableaux, mais comme je passe ces tableaux à une fonction sans utiliser de pointeurs (du moins c'est ce que je pense faire), l'exécution prend assez longtemps (je travaille avec beaucoup de données). Le but de ce code est de prendre un tableau, de le diviser en deux selon certains critères et de renvoyer un double qui est le résultat d'un calcul sur les deux moitiés du tableau.

Donc voici en résumé ce que j'utilise et qui marche (j'ai beaucoup simplifié le code histoire de ne laisser que le nécessaire):

// Fonction qui traite le tableau

double split(double complet[][4], int num)  // complet est le tableau entier passé à la fonction, num est le max d'éléments du tableau
{
  // Traitement du tableau, par exemple:
  double half[10][4];
  half[0][0] = complet[0][0];
 ...
 return quelquechose;
}

// Fonction où est créé, initialisé et rempli le tableau

void fonction()
{
   double complet[2000][4]; // tableau qui va être passé à la fonction split

  // Initialisation (pas recopié ici, ce n'est pas nécessaire)
 
 // Remplissage (exemple)
  for(int i = ....)
   {
     for(int j = ....)
      {
         complet[i][j] = i * j;
      }
   }

  double result = split(complet, num);

}


Donc ma question est: comment modifier ce code afin de ne plus passer le tableau complet, mais de passer un pointeur vers ce tableau? (à moins que je me trompe et que je passe déjà un pointeur vers le tableau, dans ce cas je suppose qu'il n'y a pas moyen d'accélérer le truc).

J'ai déjà essayé plusieurs choses, par exemple déclarer double **complet, mais ça coince apparemment.

Merci de votre aide!
A voir également:

3 réponses

shuya89 Messages postés 470 Date d'inscription   Statut Membre Dernière intervention   39
 
ce que tu devrais montrer ces ta declaration de ta variable
1
Loufoca
 
Désolée, je n'ai pas compris à quelle variable tu fais référence :( Tu parles de la déclaration du tableau?
0
shuya89 Messages postés 470 Date d'inscription   Statut Membre Dernière intervention   39
 
oui c'est ca
1
Loufoca
 
Alors la déclaration et l'initialisation de mon tableau, c'est:

          double complet[2000][4];

	  for(int s=0;s<2000;s++) 
	    {
	      complet[s][0]=0;
	      complet[s][1]=0;
	      complet[s][2]=0;
	      complet[s][3]=0;
	    }


Et ensuite je calcule quelques trucs pour le remplir dans une boucle du même type.

J'espère que c'est ce que tu demandais ^^
0