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

Nak*_*kib 1 c arrays char multidimensional-array

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

在python我会做这样的事情

grid = [['a','b','c'],['d','e','f'],['g','h','i']]
grid_copy = grid
Run Code Online (Sandbox Code Playgroud)

我想在C中做同样的事情.

char grid[3][3] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};
Run Code Online (Sandbox Code Playgroud)

如何将此数组复制到copy_grid?

oua*_*uah 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);
Run Code Online (Sandbox Code Playgroud)


Omk*_*ant 5

使用memcpy,别忘了包含<string.h>

#include <string.h>
void *memcpy(void *dest, const void *src, size_t n);
Run Code Online (Sandbox Code Playgroud)

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