Bonjour!
j'utilise un tableau [i][3] mais il fait planté mon appli.
Je pense que je l'ai mal déclarer mais je vois pas mon erreur.
mes tableau accepte des nombres flottants.
Il fait planter mon programme dès que je veux écrire dedans:
Visual Studio just in time debugger:
"An unhandled Win 32 exception occured in Post Processing.exe
Exception non gérée à 0x00415767 dans CAPI_PostProcessing.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0xfdfdfdfd."
Voici mon prog raccourcis:
#include
"stdafx.h"#include
<conio.h>#include
<iostream>#include
<fstream>#include
<string>#include
<cmath>#include
<conio.h>using
namespace std;char
FileName[256];
bool
is_readable( const string & file ) {
ifstream FileName ( file.c_str() );
return !FileName.fail(); }
void
_tmain(int argc, _TCHAR* argv[]){
float CalValues;float InitPointX,InitPointY;float DistX,DistY;char FileName[256];char Psimu;fstream File;
string line;
float Power,Dir;float DistRel,DistAbs;int NbMeas;size_t size = line.size()+ 1000000;
char *InfoLine= newchar[size];int i,j,l,NbMaxValues;NbMaxValues=100000;
float ** ConvertValues;float ** Values_To_At;/*** allocation dynamique de mémoire ***/ConvertValues=
newfloat *[NbMaxValues];Values_To_At=
newfloat *[NbMaxValues];for(i = 0; i<NbMaxValues;i++){
ConvertValues[i]=
newfloat[2];}
for(l=0; l<NbMaxValues;l++){
Values_To_At[l]=
newfloat[2];}
i=0;
if(File){
cout<<
"!!!file open!!!\n\n\n"<<endl; //instructionswhile ( getline( File, line ) ){
strncpy( InfoLine, line.c_str(), size );
if (strncmp(InfoLine,";[GPS]",6)==0){
Dir=atof(InfoLine+72);
cout<<
"Direction:"<<Dir<<endl;}
elseif(strncmp(InfoLine,";",1)!=0){
NbMeas=atof(InfoLine+0);
if (Psimu=='Y'){
if(NbMeas<100){
Power=-90;
DistRel=atof(InfoLine+17);
}
else{
Power=-90;
DistRel=atof(InfoLine+18);
}
}
elseif(Psimu=='N'){
if(NbMeas<100){
Power=atof(InfoLine+2);
DistRel=atof(InfoLine+17);
}
else{
Power=atof(InfoLine+3);
DistRel=atof(InfoLine+18);
}
}
cout <<
"Numero de mesure:"<< NbMeas<<"\tPuissance:"<< Power<<"\tDistance:" << DistRel<<"\tDirection:"<<Dir << endl;Dir=(Dir*3.141592654)/180;
//conversion deg to radConvertValues[i][0]=DistRel; //Mon PROGRAMME PLANTE ICI!!!
ConvertValues[i][1]=Dir;
ConvertValues[i][2]=Power;
i++;
}
/*** Calculation of course ***/i=0;
DistX=(InitPointX+(cos(Dir)*ConvertValues[i][0]))*CalValues;
DistY=(InitPointX+(sin(Dir)*ConvertValues[i][0]))*CalValues;
Values_To_At[i][0]=DistX;
Values_To_At[i][1]=DistY;
Values_To_At[i][2]=ConvertValues[i][2];
i++;
for(i=1;i<NbMaxValues;i++){
Values_To_At[i][0]=(Values_To_At[i-1][0]+(cos(Dir)*ConvertValues[i][0]))*CalValues;
Values_To_At[i][1]=(Values_To_Atl[i-1][0]+(sin(Dir)*ConvertValues[i][0]))*CalValues;
Values_To_At[i][2]=ConvertValues[i][2];
}
}
}
else{
cout <<
"Impossible d'ouvrir le fichier !" << endl;return ; //l'ouverture à échoué, on quitte...}
File.close();
delete [] InfoLine;delete ConvertValues;delete Values_To_Atoll;/*** Fin du programme ***/
return}mon programme récupère des infos dans un fichier. Ces infos sont enregistrer dans mon tableau puis convertit pour être envoyé vers un autre tableau qui me permettra d'écrire un fichier avec mes infos convertit.
Quelqu'un pourrai m'aidé?
Je vous remercie.
Cordialement