我的结构是这样的:如何获得一个结构部件上指针的结构体内部
typedef struct Bounds Bounds;
struct Bounds
{
int type;
double lb;
double ub;
};
typedef struct HelperGlpk HelperGlpk;
struct HelperGlpk
{
double *matrix_coefs;
double *obj_coefs;
Bounds *row_bounds;
Bounds *col_bounds;
int *column_of_coef;
int *row_of_coef;
int cpt_coef;
int cpt_contrainte;
};
我initiliaze他们的方式(在我的主):
HelperGlpk helper_glpk;
helper_glpk.matrix_coefs = malloc((nbr_coefs + 1) * sizeof(double));
helper_glpk.matrix_coefs[0] = 0;
helper_glpk.obj_coefs = malloc((nbr_colums + 1) * sizeof(double));
helper_glpk.obj_coefs[0] = 0;
helper_glpk.column_of_coef = malloc((nbr_colums + 1) * sizeof(int));
helper_glpk.column_of_coef[0] = 0;
helper_glpk.row_of_coef = malloc((nbr_rows + 1) * sizeof(int));
helper_glpk.row_of_coef[0] = 0;
helper_glpk.col_bounds = malloc((nbr_colums + 1) * sizeof(Bounds));
helper_glpk.row_bounds = malloc((nbr_rows + 1) * sizeof(Bounds));
helper_glpk.cpt_coef = 1;
helper_glpk.cpt_contrainte = 1;
然后,在函数内部genere_contrainte_1(),我称之为是这样的:genere_contrainte_1(i, j, &helper_glpk, baie);
我要访问指针helper_glpk->col_bounds[helper_glpk->cpt_coef]->type
但我得到这个错误:
error: invalid type argument of ‘->’ (have ‘Bounds {aka struct Bounds}’)
helper_glpk->col_bounds[helper_glpk->cpt_coef]->type = GLP_DB;
你能告诉我我做错了什么吗?
编辑:I DO要访问的指针 - >类型,因为.TYPE不“保存”的值的函数genere_contrainte_1()
helper_glpk是一个结构,所以你应该使用'.'操作,而不是' - >'运营商 – Taelsin
问题应显示函数原型' genere_contrainte_1'功能。 – user3386109
作为对编辑的回应:您需要发布[最小完整可验证示例](http://stackoverflow.com/help/mcve)。目前还不清楚你的意思是什么*“。type不保存在函数外部使用的值”*。这应该。 – user3386109