[débutant] Accès aux éléments d'un tableau dans une structure via un pointeur ?
Bonjour,
J'ai déjà eu recours à votre aide il y a peu, mon problème initial a été résolu [MERCI !!] (mais si quelqu'un confirme que ce que j'ai modifié est juste ce serait extra)
Mais voilà, il me reste un point noir dans mon programme à cause de mon ignorance du langage C++... Je ne trouve pas de réponse sur le net.
Je voudrais écrire une structure contenant deux tableaux (mais dynamiques) et un entier, l'entier étant la dimension du tableau. Pour l'instant j'ai mis deux pointeurs et un entier dans ma structure.
Des extraits du code seront plus parlants :
Code:
1 2 3 4 5 6
|
struct data
{
int npts;
double *freq, *ampl;
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Data>>n; // Data est un fichier que j'ai ouvert
double *tabfreq = new double[n];
if (tabfreq == NULL) return 1;
double *tabampl = new double[n];
if (tabampl == NULL) return 1;
// Je place les points de mon fichier dans deux tableaux {fréquence - amplitude}
cpt = 0;
while(Data >> x >> y)
{
tabfreq[cpt] = x;
tabampl[cpt] = y;
cpt++;
if (cpt > n) {cout<<"compteur a atteint la limite"<<endl; break;}
}
data *params = new data;
params->npts = n;
params->freq = tabfreq;
params->ampl = tabampl; |
Mes questions :
Est-il possible avec cette méthode d'accéder simplement aux éléments de mes tableaux tabfreq et tabampl via le pointeur params ? (Je précise que je ne fais pas cette structure pour me compliquer la vie mais parce que j'en ai absolument besoin pour entrer mes deux tableaux via un unique pointeur dans une fonction)
Pour le moment, je n'ai trouvé que ça (en bidouillant...) :
Code:
1 2 3 4 5 6
|
for(int i = 0; i<n; i++)
{
cout<<"params.freq["<<i<<"] = "<<*(params->freq)<<endl;
(params->freq)++;
} |
Mais ça sera inutilisable (ou très difficilement) dans la fonction qui utilise mon pointeur....
Et puis, je modifie mon poiteur... et ça m'obligerait à le "rembobiner" en faisant une boucle avec Que me conseillez vous ?