2013-02-22 75 views
0

我有此数组中的我的maze.c文件,字符填充:了一种将2维阵列复制到一个结构阵列

炭normalMazeArray [6] [12];动态填充为mazeArray [行] [列]

现在我想传递什么数组(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; 

但它不工作, 人谁可以帮我?

+0

哪种类型的“mazeArray”是?你想达到什么目的? – 2013-02-22 18:09:16

+0

mazeArray是char类型的,我已经编辑它。我想将normalMazeArray的内容传递给maze.mazeArray – user1213904 2013-02-22 18:11:45

回答

1

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

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; 
+0

这工作谢谢你 – user1213904 2013-02-22 18:27:15

-1

等等,怎么?首先,是一个指针,所以你不能有maze.mazeArray。其次,maze->mazeArray是char类型的,而mazeArray的类型是char**。没有可以做的。

您应该编写一个函数,它分配char**数组,然后从mazeArray中扣除字符串。或者,如果你想过户,而不仅仅是复制,你可以去这样的:

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

“而mazeArray的类型是char **'” - 不,它不是。它的类型是char [6] [12]'。 – 2013-02-22 18:23:28