我有这个结构,在我的头文件中定义:
struct params
{
size_t s;
float f1;
float f2;
int i1;
float f3;
gsl_matrix_float *gm;
};
我初始化数组和另一个gsl_matrix_float
:
gsl_matrix_float *another_gsl_matrix;
struct params p;
元素一一填写,例如
p.s=1;p.f1=0.2f;
在程序期间,another_gsl_matrix
运行一个完全不相关的功能。但在该函数之后,值p.s
变为0
! 奇怪的是(对我来说,我猜是因为我缺乏知识!)是当我改变结构成员的声明顺序时(s
例如移动到结构声明中的第二个或任何其他位置) 没有问题了,所有的值都很好!所以我猜这不是因为内存管理不善,例如在该函数期间指向数组之外。
如果您能帮助我了解这里发生了什么,我将不胜感激!