typedef struct piece Piece;
struct piece{
char color;
char symbol;
};
int readPiece(Piece * p[]);
//å› ä¸ºæˆ‘çš„ä»£ç 很长。我没有把所有这些都放在这里。
int main(void){
int row = 0;
int col = 0;
Piece input[LEN][LEN];
readPiece(input);
return 0;
}
//读入16 * 2个特定å—符。
int readPiece(Piece * p[]){
int row = 0;
int col = 0;
while(row < LEN){
col = 0;
while(col < LEN){
scanf("%c%c",&(p[row][col] .color), &(p[row][col].symbol));
if((p[row][col].color == 'R' || p[row][col].color == 'G' || p[row][col].color == 'B' || p[row][col].color == 'Y') && (p[row][col] . symbol == '*' || p[row][col].symbol == '^' || p[row][col].symbol == '#' || p[row][col].symbol == '$')){
getchar();
}else{
return 0;
}
col ++;
}
row ++;
}
return 1;
}
//我刚开始å¦ä¹ Cè¯è¨€ã€‚我å°è¯•é€šè¿‡æŒ‡é’ˆå°†2dç»“æž„ä¼ é€’ç»™å‡½æ•°ï¼Œä½†æ˜¯å½“æˆ‘ç¼–è¯‘å®ƒæ—¶ï¼Œå®ƒä¼šæ˜¾ç¤ºâ€œä¸å…¼å®¹çš„æŒ‡é’ˆç±»åž‹ä¼ é€’â€ã€‚ 所以我想问一下将2dç»“æž„ä¼ é€’ç»™å‡½æ•°çš„æ£ç¡®æ–¹æ³•æ˜¯ä»€ä¹ˆï¼Œä»¥åŠä¸ºä»€ä¹ˆæˆ‘的工作ä¸èµ·ä½œç”¨ã€‚感谢。
ç”案 0 :(得分:2)
我最近也é‡åˆ°è¿‡è¿™ä¸ªé—®é¢˜ã€‚åœ¨å‡½æ•°å®šä¹‰æ ‡é¢˜ï¼ˆå’Œå‡½æ•°å£°æ˜Žï¼‰ä¸ä½¿ç”¨Piece (*p)[LEN]
而ä¸æ˜¯Piece *p[]
。
*p[]
将是一个指针数组,而(*p)[]
将是指å‘数组的指针。
å°è¯•é˜…读本文:
C pointer to array/array of pointers disambiguation
ç”案 1 :(得分:0)
Piece * p[]
è¡¨ç¤ºæŒ‡é’ˆæ•°ç»„ï¼Œå› æ¤ç±»åž‹é”™è¯¯ã€‚
该函数应声明为int readPiece(Piece p[LEN][LEN);
或者,如果您愿æ„,int readPiece(size_t length, Piece p[length][length]);
。