Crash sur array de double
Bonjour,
Je me bat sur quelque chose de sans doute très simple depuis un petit moment.
La solution doit etre toute c**** et le problème doit se situer entre l'écran et la chaise.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| const double* pY1 = mongetter
const double* pX1 = mongetter
double *pY2;
double *pX2;
pY2 = new double[i2];
pX2 = new double[i2];
double xi;
wxMessageBox("A");
for (int i = 0; i < i2; i++)
{
xi = (1 - i /(i1-1.0)) * pX1[0] + (i /(i2-1.0)) * pX1[i1-1];
*(pX2+i) = xi;
*(pY2+i) = 0;
wxMessageBox("A " + wxString::Format(wxT("%d\n%lf\n%lf"), i, xi, *(pX2+i)));
}
wxMessageBox("B");
// transmission à une autre méthode |
Le code est sale (pas mal de test et de modifs) mais le problème est le suivant : avec la message box, ça passe, sans, ça crash (après "A" et avant "B").
Note1 : j'ai essayé avec du double* pX2 = new double[i2] et le soucis est le même.
Note2 : je ne viens pas du C++...
Note3 : idéalement j'aimerais dégager xi et l'initialisation de pY2
Merci d'avance,
K
edit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| /** Get old containers and prepare new containers (time/value) */
const double* pY1 = tmongetter
const double* pX1 = mongetter
double* pY2 = new double[i2];
double* pX2 = new double[i2];
double xi;
wxMessageBox("A");
for (int i = 0; i < i2; i++)
{
xi = (1 - i /(i1-1.0)) * pX1[0] + (i /(i2-1.0)) * pX1[i1-1];
pX2[i] = 0; //double(xi);
pY2[i] = 0;
//wxMessageBox("A " + wxString::Format(wxT("i = %d\nX = %lf\nX = %lf\nY = %lf"), i, xi, pX2[i], pY2[i]));
}
wxMessageBox("B"); |
Le code ci-dessus fonctionne, sauf quand je décommente le double(xi);
Ce serait donc un soucis avec xi...qui serait levé si je l'utilise ponctuellement dans un messagebox...
edit : avec la ligne ci dessous ça passe. Mais si ça marche dans mon cas, je perds en précision et la solution n'est pas très convenable...(donc je suis preneur d'une vraie résolution de mon soucis)
Code:
pX2[i] = floor(xi*100)/100;