我正在阅读有关 memcpy 和 memmove 的一些信息,如果我没记错的话,您可以将两者用于在不同数组之间移动内存。
所以这是我的问题:如果我想用这种方法连接这些对象。
class List
{
// Pointer to the beginning.
int* vector;
// Number of elements, n >= 0
int n;
// Capacity for new elements.
int capacity;
}
void concatenateList(List* listToConcatenate)
{
memmove(this->vector + n, listToConcatenate->vector, (listToConcatenate->n)*sizeof(int));
}
因此,从"listToConcatenate->vector"
哪个开始,我们将使用 复制其中的所有元素,"(listToConcatenate->n)*sizeof(int))"
并将其放在另一个数组的末尾"this->vector + n"
。
这不应该是正确的list2.listToConcatenate(&list1);
吗?当然,假设我们有足够的空间。
如果不是,那么正确的方法是什么?这可以用 memcpy 完成吗?
谢谢你。
编辑:我想我需要补充一点,这不适用于我的程序。它不会崩溃,但似乎什么也没做。