如何在c中将数组的值赋给另一个数组(制作副本)?

时间:2012-12-16 16:52:17

标签: c arrays char multidimensional-array

我想复制2d数组并将其分配给另一个。

在python中,我会做这样的事情

grid = [['a','b','c'],['d','e','f'],['g','h','i']]
grid_copy = grid

我想在C中做同样的事。

char grid[3][3] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};

如何将此数组复制到copy_grid?

2 个答案:

答案 0 :(得分:10)

使用memcpy标准功能:

char grid[3][3] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};
char grid_copy[3][3];

memcpy(grid_copy, grid, sizeof grid_copy);

答案 1 :(得分:5)

使用memcpy,不要忘记包含<string.h>

#include <string.h>
void *memcpy(void *dest, const void *src, size_t n);

或者,手动使用循环将每个值逐个放入。