Pointeurs vers tableau (C++)
Loufoca
-
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):
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!
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:
- Pointeurs vers tableau (C++)
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
3 réponses
ce que tu devrais montrer ces ta declaration de ta variable
Loufoca
Désolée, je n'ai pas compris à quelle variable tu fais référence :( Tu parles de la déclaration du tableau?
Alors la déclaration et l'initialisation de mon tableau, c'est:
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 ^^
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 ^^