【发布时间】:2020-06-29 20:49:51
【问题描述】:
我正在重新使用 C++,但在弄清楚如何将二维数组传递给函数时遇到了麻烦。下面的代码是我目前的尝试,我已经能够使用以下方法通过引用传递向量字符串:
vector<string> g_dictionary;
getDictionaryFromFile(g_dictionary, "d.txt");
...
void getDictionaryFromFile(vector<string> &g_dictionary, string fileName){..}
但是当我尝试像下面这样对我的二维数组做同样的事情时,我在“solve_point(boardEx);”这一行得到一个错误表示 char & 类型的引用不能用 boardEx[5][4] 类型的值初始化
#include <stdio.h>
#include <string>
using namespace std;
void solve_point(char* &board){
printf("solve_point\n");
//board[2][2] = 'c';
}
int main(){
char boardEx[5][4];
solve_point(boardEx);
}
【问题讨论】:
-
您的编辑使您的 C++ 代码无效,因为 C++ 没有 variable-length arrays。这使我的
std::vector解决方案成为唯一可能的便携式和标准解决方案。 -
请不要以这样的方式编辑您的帖子,以致针对原始帖子发布的答案已过时。
-
还原代码以使正确答案再次正确。提出一个新问题比让现有问题无效要好。
标签: c++ arrays pointers parameter-passing