gpt4 book ai didi

c++ - 需要帮助创建数组并在另一个函数中编辑它并将其发送回初始函数

转载 作者:行者123 更新时间:2023-11-30 05:37:19 25 4
gpt4 key购买 nike

我在传递给 GenerateMap 的 int main 中创建了一个数组,然后 GenerateMap 函数遍历该数组并分配每个项目。分配每个项目后,我希望它回到 int main 以便我以后可以使用它,但我不断收到错误。几次尝试后,我按照 Thenewboston 的指示通过引用传递数组。但是我仍然在代码中遇到错误。有人可以向我解释在其他函数中创建 map 时我应该怎么做吗?

错误


prog.cpp: In function 'int main()':
prog.cpp:22:17: error: cannot convert 'std::string (*)[MapDimension][MapDimension] {aka std::basic_string<char> (*)[MapDimension][MapDimension]}' to 'std::string** {aka std::basic_string<char>**}' for argument '1' to 'void GenerateMap(std::string**)'
GenerateMap(&Map);
^
prog.cpp: In function 'void GenerateMap(std::string**)':
[NEW ERROR] prog.cpp:70:31: error: no match for 'operator*' (operand type is 'std::string {aka std::basic_string<char>}')
cout <<"[" << *Map[i][j] << "]" << " ";

代码


int main() {
string Map[MapDimension][MapDimension];
GenerateMap(&Map);

}





void GenerateMap(string *Map[]) {
srand(time(NULL));
string x;

for (int i = 0; i <= MapDimension-1; ++i) {

for (int j = 0; j <= MapDimension-1; ++j)

{

int random = rand() % 6;
switch (random)
{
case 0:
x = " D ";
break;

case 1:
x = " F ";
break;

case 2:
x = " P ";
break;

case 3:
x = " M ";
break;

case 4:
x = " L ";
break;

case 5:
x = " S ";
break;
}

Map[i][j] = x;

cout <<"[" << *Map[i][j] << "]" << " ";
}
cout << endl;

}




}

最佳答案

你需要一个分号:

string Map[MapDimension][MapDimension] 

应该是

string Map[MapDimension][MapDimension];

关于c++ - 需要帮助创建数组并在另一个函数中编辑它并将其发送回初始函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com