我想复制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?
答案 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);
或者,手动使用循环将每个值逐个放入。