我在maze.c文件中用字符填充了此数组:

char normalMazeArray [6] [12];动态填充为mazeArray [row] [column]

现在,我想将数组传递给位于我的结构(maze.h)中的mazeArray

我的结构称为:

typedef struct {
    char mazeArray;
} maze_t;


我尝试过如下复制:

maze_t* maze;

char normalMazeArray[6][12]; // filled with info

typedef struct {
    char mazeArray;
} maze_t;

maze->mazeArray = normalMazeArray;


但是它不起作用,
谁能帮助我?

最佳答案

您尝试做的事情是不可能的。不过,您可以使用两种略有不同的解决方案。

normalMazeArraychar [6][12]类型-它是一个数组。您可以使用memcpy()将其内容复制到相同类型的数组中:

typedef struct {
    char mazeArray[6][12];
} maze_t;

memcpy(maze->mazeArray, normalMazeArray, sizeof(normalMazeArray));


或者,如果normalMazeArray在程序的整个生命周期中都存在,则可以在结构中为其分配一个指针:

typedef struct {
    char (*mazeArray)[12];
} maze_t;

maze->mazeArray = normalMazeArray;

09-26 19:42