luk*_*ell 6 c pointers declaration
我正在使用GeomagnetismLibrary,其中一个函数声明有一个格式
int MAG_robustReadMagModels(char *filename, MAGtype_MagneticModel *(*magneticmodels)[], int array_size)
Run Code Online (Sandbox Code Playgroud)
为了简单起见,我把它简化为专注于我的目标
void blah(int *(*a)[])
{
(*a)[0] = malloc(sizeof(int));
(**a)[0] = 12;
}
Run Code Online (Sandbox Code Playgroud)
如果我想调用这个函数,我必须声明一个变量,如:
int *a[1];
blah(&a);
Run Code Online (Sandbox Code Playgroud)
现在在我的情况下,不管什么a永远不会有多个元素,所以我不想声明a为数组,而只是像指针一样
int *a;
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以在调用时blah根据需要键入强制转换或取消引用这个变量而不会导致段错误?
另外,您如何根据类型转换定义该类型,例如:( int *[]*)?
谢谢