ошибка heap corruption detected: after normal block "#355"
Ситуация такая, научился работать с динамическим массивом, чтение, вывод на экран, запись. Решил применить его к своей программе - вычисление интеграла методом Гаусса-Кристоффеля, в итоге вылазит ошибка. При этом если нажимать "пропустить" в окошке Debug Library, то читается фаил и вычисляется следующие приближение. И так столько раз, какая точность поставлена. В вобщем наверное всё отлично работает, лишь вылазит постоянно это ошибка. Подскажите пожалуйста как избавится от неё.
Код:
int main( void )
{
int i,j;
int n=2;
long double S, Sn, e=0.000001;
S=0;
//double mas[n] [n + 1];
for (;;)
{
long double**mass=new long double*[n];
for(int i=0; i<=n;i++)
mass[i]=new long double[2];
/*
char* nfile;
itoa (n, nfile, 16);
//другой способ:
std::stringstream sstrm;
sstrm << "D:\\Tab" << nfile << ".txt";
std::string str = sstrm.str();
//и еще один способ, не работающий:
string str=string("D:\\Tab")+ string(nfile) + string(".txt");
*/
ostringstream ostr;
ostr << "D:\\data\\" << n << ".txt";
string str = ostr.str();/**/
ifstream input_file(str);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
input_file>>mass[i][j];
input_file.close ();
Sn=0;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
Sn+=mass[i][1]*mass[j][1]*exp(-2*mass[i][0]*mass[j][0]);
cout << "Iteration N_" << n << " I=" << Sn<<"\n";
for (i=0;i<n;i++)
delete[]mass[i];
delete[]mass;
if (fabs(S-Sn)<e)
{
break;
}
S=Sn;
n=n+1;
}
return (0);
}
[img]
[img]http://img571.**invalid link**/img571/8787/a698.png[/img][/img]
[img]
[img]http://img46.**invalid link**/img46/688/75h7.png[/img][/img]