作者viajimmy (爆肝人生)
看板C_and_CPP
標題[問題] struct array 引入sub function issue
時間Mon Nov 12 14:31:18 2018
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
non.
問題(Question):
我定義一個二維陣列要引入sub function.
同時定義Link list struct裡也有相同的二維陣列
但gcc compiler解析出來的與我定義的原形不同,
不解為什麼.
我的原形:
typedef unsigned char BYTE;
typedef BYTE TestMatrix[10][10];
sub function引入變數的寫法:
LinkListNode *InserNode(LinkListNode *first, LinkListNode *theNode,
TestMatrix Matrix){
GCC Compiler fail:
test.cpp: In function ‘LinkListNode* InserNode(LinkListNode*, LinkListNode*,
BYTE (*)[10])’:
test.cpp:24:22: error: incompatible types in assignment of ‘BYTE (*)[10]
{aka unsigned char (*)[10]}’ to ‘TestMatrix {aka unsigned char [10][10]}’
inserNode->Matrix=Matrix;
餵入的資料(Input):
無
預期的正確結果(Expected Output):
compiler pass
錯誤結果(Wrong Output):
compiler fail
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://pastebin.com/embed_js/nBEkr5rC
補充說明(Supplement):
感謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.88.200
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1542004282.A.A16.html
※ 編輯: viajimmy (122.146.88.200), 11/12/2018 14:32:11
※ 編輯: viajimmy (122.146.88.200), 11/12/2018 14:51:04
→ bluesoul: 二維陣列不能這樣傳 11/12 14:58
→ viajimmy: 咦~~真的嗎? 完了, 我要改動大了..... 11/12 15:05
→ MOONRAKER: inserNode() 怎麼這麼像以前公司同事的拼字 11/12 15:34
→ viajimmy: 哈哈, 我拿sample code來試二維陣例, 才會有這些名字 11/12 15:41
→ MOONRAKER: sample code也沒有t嗎 11/12 15:51
→ viajimmy: 有點忘了Sample code那來的..(存在Evernot, 忘了留ref) 11/12 16:11
→ viajimmy: 不過拿inserNode拿去餵狗, 還蠻多人這麼用 11/12 16:11
→ viajimmy: 因為我套回我要用的Code不會用這名字, 倒沒留意t不見了. 11/12 16:13
→ MOONRAKER: 以前同事都會很神祕的掉字或者拼錯尾巴 而且還一直用 11/14 14:12
→ MOONRAKER: 那又共用method不能把他改掉 看到超痛苦的 XD 11/14 14:13