0
我必須做一個函數來複制數組並返回它。C++給函數返回數組並返回它們
const int HEIGHT = 21;
const int WIDTH = 16;
char field [HEIGHT][WIDTH] = {
"###############",
"# #",
"# ## ### #### #",
"# ## ### #### #",
"# #",
"# ######## # #",
"# # # #",
"# # ##### # #",
"# # ##### # #",
"# # # #",
"# # # #",
"# #",
"# ## ######## #",
"# ## ######## #",
"# ## ######## #",
"# #",
"# ### ### #",
"# ########### #",
"# ########### #",
"# #",
"###############",
};
char copyArray(char copyField[][1]) { //Copy the array field to newField and return it to main
int i = 0;
int j = 0;
for (int i = 0; i < HEIGHT; i++) {
copyField[i][j] = field[i][j];
for (int j = 0; j < WIDTH; j++)
copyField[i][j] = field[i][j];
}
/* for (int i = 0; i < HEIGHT; i++) {
cout << copyField[i] << endl;
} */
return copyField[i][j];
}
int main() {
//char newField[HEIGHT][WIDTH] = copyArray();
//cout << newField[1][1] << endl;
int i = 0;
int j = 0;
char copyField[HEIGHT][WIDTH]= copyArray(*copyField[][1]);
return 0;
}
我的問題是如何將copyArray從主函數傳遞給copyArray函數,以及如何返回它? 複製部分現在工作正常,我測試了它通過copyArray函數中的char copyArray [HEIGHT] [WIDTH]將其打印在那裏。 我知道向量和memcpy工作得更好,更容易,但我必須使用它。
無法將數組按值傳遞給函數。也不可能通過函數的值返回一個數組。當然,可以將一個指向數組的指針傳遞給函數,並讓該函數修改該數組,但這並不嚴格地從函數返回數組。在這類問題中,你必須非常小心地使用術語。 – john