我正在使用 GeomagnetismLibrary 并且其中一个函数声明具有格式
int MAG_robustReadMagModels(char *filename, MAGtype_MagneticModel *(*magneticmodels)[], int array_size)
为了简单起见,我将其简化为只专注于我的目标
void blah(int *(*a)[])
{
(*a)[0] = malloc(sizeof(int));
(**a)[0] = 12;
}
如果我想调用这个函数,我必须声明一个变量,如:
int *a[1];
blah(&a);
现在在我的情况下,无论什么a
都不会有多个元素,所以我不想声明a
为一个数组,而只是像一个指针
int *a;
有什么方法可以在调用时键入强制转换或取消引用此变量,blah
这将按需要工作并且不会导致段错误?
此外,您将如何根据类型转换定义该类型,例如:( int *[]*
)?
谢谢