Задача была такая: Создать функцию, позволяющую удалять указанное количество элементов, начиная с произвольного индекса массива.
Указатель на исходный массив и значение размера исходного массива должны изменить свое значение внутри функции.
#include<iostream>
#include<time.h>
using namespace std;
int* Function1(int*& ptr, int& size, int index, int del);
void InitArray(int* ptr, int size);
void ShowArray(int* ptr, int size);
void main() {
setlocale(LC_ALL, "Rus");
int* ptr = nullptr;
int size = 0;
int del = 0;
cout << "Введите размер массива: ";
cin >> size;
int index = rand() % size + 1;
InitArray(ptr, size);
ShowArray(ptr, size);
Function1(ptr, size, index, 1);
ShowArray(ptr, size);
}
void InitArray(int* ptr, int size) {
if (ptr == nullptr || size <= 0)
return;
for (int i = 0; i < size; ++i) {
ptr[i] = rand() % 20 + 1;
}
}
void ShowArray(int* ptr, int size) {
if (ptr == nullptr || size <= 0)
return;
for (int i = 0; i < size; ++i) {
cout << ptr[i] << " ";
}
cout << endl;
}
int* Function1(int*& ptr, int& size, int index, int del) {
if (ptr == nullptr || size <= 0 || index > size || index < 0 || size < del) {
return nullptr;
}
int* temp = 0;
for (int i = 0; i < size; ++i) {
if (i < index) {
temp[i] = ptr[i];
}
else if (i == index) {
for (int j = index; j <= del; ++j) {
cout << " ";
}
}
else if (i > index) {
temp[i] = ptr[i - 1];
}
}
return temp;
}