[问题] struct array传递问题

楼主: cozychocolat (chocolate)   2018-01-10 03:02:48
开发平台(Platform): (Ex: Win10, Linux, ...)
Windiw 7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
CodeBlock
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
none
问题(Question):
我想要将一个结构阵列传进副程式
并在副程式当中作一些判断
但是当我传入并想做一些简单的测试时
就发生错误了
希各位大大能帮忙解惑
感恩
错误结果(Wrong Output):
错误资讯
no match for 'operator[]' (operand types are 'Maze' and 'int')
程式码(Code):(请善用置底文网页, 记得排版)
https://ideone.com/LE97Ei
补充说明(Supplement):
我 Maze maze[x+1][y+1] 的这种方式好像也不是很好
是否可教我改写
作者: steve1012 (steve)   2018-01-10 03:41:00
和不用 vector<vector<maze>>
作者: kzeratal (Kz)   2018-01-10 04:04:00
二维阵列是两个星星
作者: chuegou (chuegou)   2018-01-10 08:42:00
用指标传
作者: Killercat (杀人猫™)   2018-01-10 09:53:00
也许当初语法糖这东西真的害人不浅 XD
作者: loveflames (咕啾咕啾魔法阵)   2018-01-10 15:10:00
如果不用STL,可以传阵列的reference随机输入就不是严格意义的阵列了,请用vector
作者: steve1012 (steve)   2018-01-10 16:46:00
虽然不知道你到底想要做啥 不过会动的code https://ideone.com/Cq75my
作者: idiont (supertroller)   2018-01-10 21:52:00
传array的时候只有最高维可以不用知道大小
作者: loveflames (咕啾咕啾魔法阵)   2018-01-10 22:11:00
因为那个实际上不是传阵列,只是传指标
作者: dzwei (Cout<< *p << \n ;)   2018-01-13 02:11:00
你函数宣告要写成void check_consistent(struct Maze (* maze)[10],int y){ ... }那个10是maze[a][b]里面的b,也就是array外层的大小参考本版C++新手13戒的第12条之所以要写成struct Maze (* maze)是因为没有那个括号的话就会变成(struct Maze *) maze两者意义完全不一样还有,我觉得check_consistent(maze, x, y);应该要放在for里面其实前面x,y,num..那些没有给初值,其实很危险一样参考本版教条的第一条
作者: hunandy14 (Charlott.HonG)   2018-01-24 11:34:00
真要传多多维度的不定阵列,可以用样板https://ideone.com/M2JW64总体来说还是跟上面大大一样,建议用vector省事~

Links booklink

Contact Us: admin [ a t ] ucptt.com