totoscill
Messages postés48Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention10 décembre 2009
-
7 juin 2007 à 09:53
totoscill
Messages postés48Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention10 décembre 2009
-
7 juin 2007 à 15:31
Bonjour,
j'utilise un tableau pour stocker mes données mesurés. Le problème est que les valeurs stocké sont totalement différentes des valeurs données.
Voici le code:
double
Dist=0 // initialisation des données
double * DistValues =
new
double[];
DistValues=(
double*)malloc(NUMBER_MAX_MEASURES *
sizeof(
double)); // allocation de mémoire pour mon tableau
while
(!(Gps->isReady())) // début des mesures{
#ifndef _CAPI_SA_NOCONNECT_ENABLEnbMes Analyseur->getList(syntaxe,freqNb, *(values+ k)); // freqNb nbMes = nb of frequencies
#endif
DAQ.startMeasAbs();
Dist=DAQ.getDistAbs(); // récupération de mes infos
DistValues[m] = Dist; // envoie de mes infos dans mon tableau
//printf("mesure %i : %lf\n",k, Dist);
//Sleep(1);m++;
k++;
}
for(
int j=0; j<k;j++){
sprintf(lastLine,
"%d\t%02.2f\t\t Distance covered: %02.2f cm",j, values[j][i], DistValues[m]); // écriture de mes infos dans un fichierfprintf(pfs,
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 7 juin 2007 à 14:35
double
* DistValues =
new
double
[];
DistValues=(
double*)malloc(NUMBER_MAX_MEASURES *
sizeof(
double)); // allocation de mémoire pour mon tableau
C'est un ou c'est l'autre mais pas les deux. Tu es en C++ ?
double *DistValues = new double[
NUMBER_MAX_MEASURES];
et
delete[] DistValues
quand tu n'as plus besoin de la mémoire.
Ensuite
sprintf(lastLine,
"%d\t%02.2f\t\t Distance covered: %02.2f cm"
,j, values[j][i], DistValues[m]); // écriture de mes infos dans un fichierfprintf(pfs,
"%s\n"
, lastLine);
Tu peux utiliser directement fprintf je crois. Pas la peine de passer par sprintf. Pour ce qui est des valeurs incorrectes, d'après le code, c'est tout à fais normal. Tu réutilise m pour extraire les valeurs de DistValues mais m n'est pas égal à 0 mais au nombre de donnés entrées. Et même si il était réinitialisé à 0, tu ne l'incrémente nul part ce qui fait que tu extrairais toujours la première valeurs.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 7 juin 2007 à 14:47
Et aussi, values[j][i].
Seul j est incrémenté ce qui me fais croire que, encore une fois, c'est un simple pointeur qu'il aurait fallu ici et non un pointeur de pointeurs ou un tableau à 2 dimensions.
totoscill
Messages postés48Date d'inscriptionjeudi 26 avril 2007StatutMembreDernière intervention10 décembre 2009 7 juin 2007 à 15:31
Ok, je te remercie.
Je commence à comprendre les tableaux et par la meme occasion les pointeurs.
J'ai prix exemple sur un code totalement faux qui m'a pas aidé.