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;
};
我可以用memcpy复制吗?
我有一个奇怪的错误,将由memcpy无法解释......
答案 0 :(得分:5)
是的,你可以在C中使用memcpy
个二维数组,只要它们实际上是2D数组而不是一维指针数组。二维数组在内存中连续排列,因此memcpy
将正确读取所有块。但是,如果你的数组是指向更多1D数组的一维指针数组,那么memcpy
只会复制指针,你最终会得到一个浅拷贝而不是一个深拷贝。
答案 1 :(得分:2)
您是否使用sizeof()来查找要复制的内容?结构的元素可以填充,因此大小大于部分的总和
答案 2 :(得分:0)
如果只是整个结构要复制,请不要使用memcpy
。只需做一项任务,=
令牌即可。