【c】函式指標陣列指標用作函式的返回值 - 程式人生

文章推薦指數: 80 %
投票人數:10人

我想建立一個函式,它返回一個函式指標陣列指標(即指標指向一個數組,陣列的元素是函式指標)。

我宣告如下: void (*(*getFuncArrayPointer(int ... 程式人生>c>函式指標陣列指標用作函式的返回值 【c】函式指標陣列指標用作函式的返回值 阿新••發佈:2020-12-27 我想建立一個函式,它返回一個函式指標陣列指標(即指標指向一個數組,陣列的元素是函式指標)。

我宣告如下:void(*(*getFuncArrayPointer(intflag)))[3]{} 但我有錯誤:returnFuncAttrPointer.c:27:10:error:declarationof‘getFuncArrayPointer’asarrayofvoids returnFuncAttrPointer.c:28:confusedbyearliererrors,bailingout Preprocessedsourcestoredinto/tmp/ccYiPPru.outfile,pleaseattachthistoyourbugreport. 它似乎解析了陣列的元素型別為void。

這是我的全部程式碼:#include typedefvoid(*FUNC)(int); staticvoidfunc1(intnum) { printf("Thisisfunc1.num=%d\n",num+1); } staticvoidfunc2(intnum) { printf("Thisisfunc2.num=%d\n",num+2); } staticvoidfunc3(intnum) { printf("Thisisfunc3.num=%d\n",num+3); } FUNCfuncArray1[]={func1,func2,func3};//FunctionPointerArray FUNCfuncArray2[]={func3,func2,func1};//FunctionPointerArray /*FunctionPointerArrayPointerusedasareturntype*/ /*Fcuntion:getFuncArrayPointer(intflag)==>funcReturntype:void(*(*func))[3]==>ArrayPointer==> *ArrayPointer:Array--(*)[3]Elemnet--void(*func)==>void(*funcArray(intstart))==>FunctionPointer */ void(*(*getFuncArrayPointer(intflag)))[3] { switch(flag) { case1: return&funcArray1; case2: return&funcArray2; default: returnNULL; } } intmain() { intnum; //(*pfuncArray)[3]==>ArrayPointer //void(*)(int)==>FunctionPointer void(*(*pfuncArray[3]))(int);//FunctionPointerArrayPointer printf("inputanumber:"); scanf("%d",&num); pfuncArray=getFuncArrayPointer(num); if(pfuncArray) { (*funcArray)[0](num); (*funcArray)[1](num); (*funcArray)[2](num); } return0; } GCC版本:通用條款(gcc)4.6.220111027(紅帽4.6.2-1)版權所有(C)2011自由軟體基金會。

這是免費軟體;請參閱複製條件的原始碼。

沒有保證;甚至不是為了適銷性或適合某一特定目的。

作業系統:Linuxsslvpn3.6.10-2.fc16.i686.PAE#1SMP週二12月11日19:10:54UTC2012i686i686i386GNU/Linux 解決辦法 你可以這樣做://createarrayof3functionpointers void(*function_array[3])()={func1,func2,func3}; //functionthatgetsthatarrayandreturnsit void(*(*getFParray(intnum))[3])() { return&function_array; } Windows10中非Activity桌面上的PrintWindow «上一篇 GetChar()函式很奇怪下一篇» 相關推薦 嘗試將指標陣列傳遞給方法並返回它 在C:函式中,對陣列中的項求和並返回奇怪的大數 將對陣列的引用傳遞給返回對陣列的引用的函式 Javascript陣列僅執行函式,可在陣列的一個元素上返回promise 如何在全域性陣列宣告中宣告sysconf返回值? 如何將N個單元格從陣列1複製到陣列2,並接收erro的返回值? 將檔案開啟到陣列中,搜尋字串並返回值 比較陣列元素與方法的返回值 將char指標傳遞給接受對char陣列的引用的函式 指向成員函式的指標陣列:使其工作 搜尋 基礎教學 Mysql入門 Sql入門 Android入門 Docker入門 Go語言入門 Ruby程式入門 Python入門 Python進階 Django入門 Python爬蟲入門 新加入文章



請為這篇文章評分?