gpt4 book ai didi

c++ - 如何从 C++ 中的函数返回矩阵(板)?

转载 作者:行者123 更新时间:2023-11-28 04:06:33 26 4
gpt4 key购买 nike

我正在制作一个简单的游戏,需要我创建一个由用户定义大小的棋盘。

我一直在编写一个函数,该函数应该返回我将在我的游戏中使用的棋盘(矩阵),但我似乎无法让它工作。

我尝试使用嵌套的 for 循环方法在 main 函数中打印出矩阵,但是我在实现它并从函数返回它时遇到了麻烦。

int* boardStateDead(int width, int height){

int* board_dead_state[width][height];

for(int i = 0; i < height; i++){

for(int j = 0; j < width; j++){
board_dead_state[i][j] = 0;

}
}
return board_dead_state;
}

我希望该函数能够返回指向我刚刚创建的矩阵的指针。

最佳答案

您正在堆栈中创建板阵列,并在超出范围后被删除。此外,您将其创建为整数指针数组而不是整数数组。

我建议您使用新语句创建它:

int* board_dead_state = new[width*height];

然后设置你的初始值或者使用:

memset(board_dead_state, 0, width*height*sizeof(int));

或将您的 for 循环修改为:

for(int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
int offset = i * width + j
board_dead_state[offset]= 0;
}
}

从函数返回指针后,您负责使用 delete[] 语句释放它。

您可以创建一个板类来在需要时处理分配和释放。

关于c++ - 如何从 C++ 中的函数返回矩阵(板)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58618421/

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