- 论坛徽章:
- 0
|
1分钟干掉了1G内存,太夸张了,程序结束的时候内存释放正常。哪位高手帮忙看一下,感激万分。
如果debug内存益出需要用什么软件呢? 谢谢。
原代码上传了,用要用 gnu scientific library (GSL), link: -lgsl -lgslcblas -lm
哪位高手帮忙看一下,回头马上给您家祖坟烧高高高的香。
typedef struct
{
size_t size1;
size_t size2;
size_t tda;
double * data;
gsl_block * block;
int owner;
} gsl_matrix;
void gsl_3d_array_alloc(gsl_3d_array Y[], const int T, const int g, const int k)
{
for(int i=0;i<T;i++)
Y.matrix=gsl_matrix_alloc(g,k);
}
void gsl_3d_array_free(gsl_3d_array Y[], const int T)
{
for(int i=0;i<T;i++)
gsl_matrix_free(Y.matrix);
}
void init_FFBS(alloc_FFBS *ptr, int T, int g, int k)
{
...
ptr->Sigma11 = new gsl_3d_array[T];
gsl_3d_array_alloc(ptr->Sigma11,T,k,k);
}
void free_FFBS(alloc_FFBS *ptr, int T)
{
gsl_3d_array_free(ptr->Sigma01,T);
delete [] ptr->Sigma01;
gsl_3d_array_free(ptr->Sigma11,T);
delete [] ptr->Sigma11;
}
main()
{
alloc_FFBS *ptr_FFBS = new alloc_FFBS[1];
...
free_FFBS(ptr_FFBS, T);
delete[] ptr_FFBS;
}
[ 本帖最后由 hangover 于 2006-11-24 03:36 编辑 ] |
|