Ошибку ловлю на строке 'int *mass1= ArrayGenerate(raz);':
error: invalid conversion from 'int' to 'int*' [-fpermissive]
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int ArrayGenerate(int raz) {
int* mass1 = new int[raz];
for (int i = 0; i < raz; i++) {
mass1[i] = rand() % 200 - 100;
cout << mass1[i] << " ";
}
return *mass1;
}
int main() {
setlocale(LC_ALL, "russian");
int raz, n, k;
srand(time(NULL));
cout << "Ввести длинну массива \n";
cin >> raz;
int* mass1 = ArrayGenerate(raz);
cout << "\n Введите номер элемента, с которого хотите начать удаление: ";
cin >> k;
cout << "\n Введите количество элементов, которые хотите удалить:";
cin >> n;
for (int i = k; i < raz - n; i++) {
mass1[i] = mass1[i + n];
}
for (int i = 0; i < raz - n; i++)
cout << mass1[i] << ' ';
system("pause >> void");
return 0;
}
Тип возвращаемого значения должен быть указатель на массив , вот как правильно:
int * ArrayGenerate(int raz);
{
int *mass1 = new int[raz];
for (int i = 0; i < raz; i++)
{
mass1[i] = rand() % 200 - 100;
cout << mass1[i] << " ";
}
return mass1;
}
Ну ведь все ясно говорит компилятор. Ваша функция ArrayGenerate возвращает int, а присваивать вы пытаетесь переменной типа int*.
Явная ошибка в ArrayGenerate - вы возвращаете не созданный массив, а значение его первого элемента (получая тем самым утечку памяти).
Объявите ее как возвращающую int*, а в ней напишите
return mass1;
И, кстати, в конце программы неплохо бы освободить память, вызвав
delete[] mass1;
Массив интов пытаетесь передать как инт. Исправьте инт на инт* в возвращаемом типе и не разыменовывайте
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости