我有这个简单的程序,当我运行这个程序时,出现分段错误,我无法识别我的错误在哪里。欢迎任何帮助。(Di> = 27的分段错误)。关键是当我立即删除功能时,分段错误消失了。或者当我将函数转换为 void 函数时。我知道有内存泄漏,因为没有使用删除运算符,它会导致内存泄漏,但容易不负责分段错误(这个泄漏内存很远会产生分段错误)。为简单起见,我没有使用删除运算符。
#include <iostream>
#include<complex>
using namespace std;
const int Di=27;
typedef struct {
complex<double> Matrix[Di][Di][Di][Di];
} O;
O initializing(int );
int main()
{
O * Operator=new O[1];
int p;
int n;
Operator[0]=initializing(n);
cout<<"hi";
return 0;
}
O initializing(int point)
{
int i,j,m,n;
O *Operator=new O[1];
for(i=0;i<Di-1;i++)
for(j=0;j<Di-1;j++)
for(n=0;n<Di-1;n++)
for(m=0;m<Di-1;m++)
Operator[0].Matrix[i][j][m][n]=2;
cout<<Operator[0].Matrix[Di-1][Di-1][Di-1][Di-1];
return Operator[0];
}