C++ 将**int转换为int

C++ 将**int转换为int,c++,C++,我正在尝试使用C库,我必须创建以下代码: void *foo = malloc(sizeof(MAGtype_MagneticModel *)); MAGtype_MagneticModel* *MagneticModels = (MAGtype_MagneticModel **)foo; 然后将其传递给一个C库函数,如下所示: if(!MAG_robustReadMagModels(filename, (MAGtype_MagneticModel* (*)[]) &MagneticM

我正在尝试使用C库,我必须创建以下代码:

void *foo = malloc(sizeof(MAGtype_MagneticModel *));
MAGtype_MagneticModel* *MagneticModels = (MAGtype_MagneticModel **)foo;
然后将其传递给一个C库函数,如下所示:

if(!MAG_robustReadMagModels(filename, (MAGtype_MagneticModel* (*)[]) &MagneticModels, epochs)) {
    //ERROR
}
当它通过上面的函数时,我想从这个函数的一个组件获取值

int var = 0;
if (var < (&MagneticModels[0]->nMax)) var = (&MagneticModels[0]->nMax);

作为参考,我正在使用WMM2015_Windows.zip下的库,即

只是不需要它的地址

if (var < MagneticModels[0]->nMax)....
if(varnMax)。。。。

一件可能有用的事情是为您想要的内容创建一个int变量

这将允许您在编译时检查变量

范例

int myInt=MagneticModels[0]->nMax

应该有用

在这里,您需要更多关于结构的信息

磁型磁模型

例如,nMax是定义为整数还是整数*

如果是后者,您可能需要正确的地址

&(磁模型[0]->nMax)

但是,通常,使用数组表示法[0]“取消对指针的引用”


希望这有帮助

。。。选择一种语言,我所使用的语言是C++。问题在于尝试使用我尝试使用的C库。这会导致程序编译,然后在到达代码的这一部分时崩溃。添加到MAGtype_MagneticModel的结构中,以及指向库的链接(如果您想查看)。请注意,如果我尝试运行
int-myInt=MagneticModels[0]->nMax
,代码将编译,但一旦到达该代码行就会崩溃。try int-myInt=MagneticModels[0].nMax给出错误:
error:C2228:left of'.nMax'必须具有类/结构/联合类型为'MAGtype\u MagneticModel*'您打算改用'->'吗?
稍后再进行一些调试,我得到
int myInt=MagneticModels[0]->nMax
在GeographicClibtest.exe中0x000000013F8694EA处发生以下异常输出时崩溃
未经处理的异常:0xC0000005:访问冲突读取位置0x0000000000000050。
确定尝试\n int-myInt(&MagneticModels)。nMax或也尝试int*myIntPtr=MagneticModels[0]->nMax int myInt=&myIntPtr然后使用myInt查看发生了什么
typedef struct {
    double EditionDate;
    double epoch; /*Base time of Geomagnetic model epoch (yrs)*/
    char ModelName[32];
    double *Main_Field_Coeff_G; /* C - Gauss coefficients of main geomagnetic model (nT) Index is (n * (n + 1) / 2 + m) */
    double *Main_Field_Coeff_H; /* C - Gauss coefficients of main geomagnetic model (nT) */
    double *Secular_Var_Coeff_G; /* CD - Gauss coefficients of secular geomagnetic model (nT/yr) */
    double *Secular_Var_Coeff_H; /* CD - Gauss coefficients of secular geomagnetic model (nT/yr) */
    int nMax; /* Maximum degree of spherical harmonic model */
    int nMaxSecVar; /* Maximum degree of spherical harmonic secular model */
    int SecularVariationUsed; /* Whether or not the magnetic secular variation vector will be needed by program*/
    double CoefficientFileEndDate; 

} MAGtype_MagneticModel;
if (var < MagneticModels[0]->nMax)....