[英]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.