c++ - 在 C++ 中将二维数组更改为 1 的函数

标签 c++ arrays pointers

我试图在 C++ 中将二维数组转换为一维数组,使用指针将新的一维数组返回给 main() 我尝试了几种不同的方法东西,但我不断收到语法错误。新数组应该只是数字 1-9 这是我的总结。

char changearray(char* matrix[3][3])
{
    char* newarray[9];
    newarray[0] = matrix[0][0];
    newarray[1] = matrix[0][1];
    newarray[2] = matrix[0][2];
    newarray[3] = matrix[1][0];
    newarray[4] = matrix[1][1];
    newarray[5] = matrix[1][2];
    newarray[6] = matrix[2][0];
    newarray[7] = matrix[2][1];
    newarray[8] = matrix[2][2];
    return *newarray;

}
int main()
{
   char Board[3][3] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}};

   char *boardptr = Board;
   changearray(Board);
}

最佳答案

您的数组是静态分配的,因此在内存中已经是一维数组。不需要功能。这将起作用:

int main()
{
   char Board[3][3] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}};

   char *boardptr = &Board[0][0];
}

boardptr 现在是一个一维数组,其布局与您的函数生成的布局相同。

关于c++ - 在 C++ 中将二维数组更改为 1 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485171/

相关文章:

c++ - 有哪些方法可以让主线程等待所有工作线程完成?

c++ - 从服务 linux c++ 打开应用程序

python - 将一维 numpy 数组转换为列表列表

c++ - 无法让数组正确更新

c++ - 带 "new"的指针和带 "&variable"的指针有什么区别

c - 鉴于 p 是指向不完整类型的指针,&*p 是有效的 C 语言吗?

c++ - 返回不同值的两个矩阵求和函数

c++ - 如何使用 for_each 获取 vector 中值的索引?

c - C 中的动态内存分配 : Problems in Realloc

C 指针 malloc