作者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://webptt.com/cn.aspx?n=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
1F:→ bluesoul: 二维阵列不能这样传 11/12 14:58
2F:→ viajimmy: 咦~~真的吗? 完了, 我要改动大了..... 11/12 15:05
3F:→ MOONRAKER: inserNode() 怎麽这麽像以前公司同事的拼字 11/12 15:34
4F:→ viajimmy: 哈哈, 我拿sample code来试二维阵例, 才会有这些名字 11/12 15:41
5F:→ MOONRAKER: sample code也没有t吗 11/12 15:51
6F:→ viajimmy: 有点忘了Sample code那来的..(存在Evernot, 忘了留ref) 11/12 16:11
7F:→ viajimmy: 不过拿inserNode拿去喂狗, 还蛮多人这麽用 11/12 16:11
9F:→ viajimmy: 因为我套回我要用的Code不会用这名字, 倒没留意t不见了. 11/12 16:13
10F:→ MOONRAKER: 以前同事都会很神秘的掉字或者拼错尾巴 而且还一直用 11/14 14:12
11F:→ MOONRAKER: 那又共用method不能把他改掉 看到超痛苦的 XD 11/14 14:13