6

GeomagnetismLibrary を使用していますが、関数宣言の 1 つに次の形式があります。

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 *[]*)?

ありがとう

4

1 に答える 1

3

これは次のようになります。

int * b;

blah((int *(*)[]) &b);
于 2013-06-27T13:57:22.937 に答える