c - memcpy 和二维数组

标签 c arrays 2d memcpy

struct item_CHECK_LIST_data
{

    char    list[MAX_CHECK_LIST_OPTIONS + 1][MAX_ITEM_TEXT_LEN];
    char    checkeditems[MAX_CHECK_LIST_OPTIONS + 1];//which are checked

    char    number_of_options;
};

我可以用 memcopy 复制这个吗?

我有一个奇怪的错误,可以解释为 memcopy 无法...

最佳答案

是的,你可以memcpy C 中的二维数组,前提是它们实际上是二维数组而不是一维指针数组。二维数组在内存中连续布局,所以 memcpy将正确读取所有 block 。但是,如果您的数组是指向更多一维数组的指针的一维数组,则 memcpy只会复制指针,你最终会得到一个浅拷贝而不是深拷贝。

关于c - memcpy 和二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930032/

相关文章:

C++:访问作为函数参数传递的双指针数组指向的变量值

c - 使c中的矩阵计算更快

c - 这个 _popen/select 示例有什么问题?

php - 将数组提取为动态变量

java - 使用 spring 注入(inject)自定义类数组

安卓2D平台游戏

c++ - 具有返回条件的openmp优化

c++ - 这在 C++ 中合法吗?

c - 为什么在 fftw 中按行声明复数数组?

c - Sobel Operator C - 边缘检测出错