0
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 无法解释...

4

3 回答 3

5

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

于 2011-02-08T05:53:30.290 回答
2

您是否使用 sizeof() 来查找要复制的数量?结构的元素可以被填充,因此大小大于部分的总和

于 2011-02-08T05:54:33.067 回答
0

如果它只是您要复制的整个结构,请不要使用memcpy. 只需做一个作业,=令牌就是为此而制作的。

于 2011-02-08T08:34:42.343 回答