بهتره که از memmove استفاده کنید چون از کپی کردن آرایه و ساختن آرایه جدید یا شیفت کردن عناصر به مراتب سریع تره .
#include <memory>
int main()
{
const int mSize=5;
int arr[mSize] = {1, 2, 3, 4, 5};
memmove(arr+1,arr+3,(mSize - 2) * sizeof(int));
for(int i=0;i<mSize-2;i++)
{
printf("%d\t",arr[i]);
}
}
کاری که memmove می کنه اینه که محتوای خونه سوم رو انتقال میده به بعد از خونه اول
البته دقت کنین که استفاده از memmove روی آرایه ای که از کلاس ساختین یا آرایه ای که به جای malloc از new برای ساختش استفاده شده مشکل سازه .
توی ++C بهتره که از std::vector یا std::list یا std::array به جای آرایه معمولی استفاده کنین .
#include <vector>
#include <iostream>
int main()
{
std::vector<int> vec{1,2,3,4,5};
vec.erase(vec.begin()+1,vec.end()-2);
for(const auto& i : vec)
std::cout<<i<<'\t';
}