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 :
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").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
Le code ci-dessus fonctionne, sauf quand je décommente le double(xi);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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");
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 : Sélectionner tout - Visualiser dans une fenêtre à part pX2[i] = floor(xi*100)/100;
Partager