malloc分配内存失败
同一个函数第一次调用,返回结果正确,第二次调用就出现Unhandled Exception......Access Violation访问内存错误了。
void Classify(BandSet* bandset, double** ClassifyMatrix)
{
......
double dPlants = Mahalanobis(Plants_Avg,Plants_Cov,Plants_Pw,x);//第一次调用,返回结果正确
double dWater = Mahalanobis(Water_Avg,Water_Cov,Water_Pw,x); //第二次调用出错
......
}
//计算马氏距离
double Mahalanobis(double* avg, double** cov, double Pw, double* x)
{
int i,j;
double d = 0;
double sum = 0;
//计算协方差的逆阵
double** E_inv = (double**)createMatrix(nBand,nBand); //出错时,调试定位到这里
E_inv = MatrixInverse(cov,nBand);
//计算三个矩阵的内积,得到第一项item1
double temp[nBand] = {0.0};
for (i=0;i
{
for (j=0;j
{
sum += (x[j]-