以这种方式使用memcpy是不好的做法吗?

问题描述

我正在弄乱数组,并试图找到对数据执行操作的有效方法。

在末尾添加值很容易,但是将数据移到一个或多个索引上有缺点。我可能会创建一个具有足够空间的新数组,并从移位后的索引开始复制数据,然后删除原始数据并交换指针,但我相信这种方法会降低内存效率。

我最终在数组本身上使用memcpy()失败了,假设其中有空间可以移动,并且效果很好,但是我担心这样做不合适,或者如果我只是不自觉地做同样的事情

我的代码如下

const int size = 25,buffer = 25;

int num[size+buffer]{}; 
initialize(num,size);


cout << "Values:" << endl;
print(num,size+buffer);
cout << endl << endl;

memcpy( &(num[size]),num,sizeof(int) * size );

cout << "Values:" << endl;
print(num,size + buffer);
cout << endl << endl;

initialize是从文件分配值的函数,它是一个简单的for循环; 通过第二个打印功能,数组可保存值的两个副本。如果一切正常,我正在考虑将其转移为新值所需的数量,然后将其插入其中。看起来干净快捷,并且希望内存有效。

任何反馈,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)