Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将二维数组复制到结构数组中的一种方法_C_Arrays_Struct - Fatal编程技术网

C 将二维数组复制到结构数组中的一种方法

C 将二维数组复制到结构数组中的一种方法,c,arrays,struct,C,Arrays,Struct,我在maze.c文件中用字符填充了这个数组: char normalmazarray[6][12];动态填充为Mazarray[行][列] 现在我想将数组中的内容传递给位于我的结构(maze.h)中的mazarray 我的结构称为: typedef struct { char mazeArray; } maze_t; 我试着复制它如下: maze_t* maze; char normalMazeArray[6][12]; // filled with info typedef st

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

char normalmazarray[6][12];动态填充为Mazarray[行][列]

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

我的结构称为:

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;
但它不起作用,, 有人能帮我吗?

等等,怎么办

首先,
maze
是一个指针,所以不能使用
maze.mazarray
。其次,
maze->mazarray
是char类型,而
mazarray
char**
类型。不行

您应该编写一个函数来分配
char**
数组,然后从
mazarray
中提取字符串。或者,如果您想要所有权转让,而不仅仅是复制,您可以这样做:

typedef struct {
   char** mazeArray;
} maze_t;
maze_t maze;
maze.mazeArray = mazeArray;

你想做的事情并不完全可能。不过,您可以使用两种稍有不同的解决方案

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

或者,如果您的
normalmazarray
在程序的整个生命周期内持续存在,您可以在结构中为其分配一个指针:

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

maze->mazeArray = normalMazeArray;

“Mazarray”属于哪种类型?你想达到什么目的?Mazarray是char类型的,我已经编辑过了。我想将NormalMazarray的内容传输到maze.mazarray“而Mazarray的类型为
char**
”-不,不是。它的类型是
char[6][12]
typedef struct {
    char (*mazeArray)[12];
} maze_t;

maze->mazeArray = normalMazeArray;