簡體   English   中英

解碼C聲明並使用它

[英]Decoding the C declaration and making use of it

我正在使用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 *[]* )?

謝謝

這樣做:

int * b;

blah((int *(*)[]) &b);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM