我希望能够复制一个二维数组并将其赋值给另一个变量。
在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中?
我希望能够复制一个二维数组并将其赋值给另一个变量。
在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中?
使用标准函数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);
<string.h>
包含的 memcpy 函数。#include <string.h>
void *memcpy(void *dest, const void *src, size_t n);
struct ArrStruct
{
int arr[5][3];
};
int main(int argc, char argv[])
{
struct ArrStruct as1 =
{ { { 65, 77, 8 },
{ 23, -70, 764 },
{ 675, 517, 97 },
{ 9, 233, -244 },
{ 66, -32, 756 } } };
struct ArrStruct as2 = as1;//as2.arr is initialized to the content of as1.arr
return 0;
}
grid
和grid_copy
都指向同一个列表。尝试更改其中一个元素,看看另一个会发生什么。 - NPE