Выход из масива | Помогите пожалуйста

117
28 августа 2021, 12:30
#include <iostream>
#include <ctime>
using namespace std;
void random1(int* nPtr, int n) {
    setlocale(LC_ALL, "UKR");
    cout << "Вивiд першого масиву: " << endl << endl;
    for (int i(0); i < n; i++) {
        *(nPtr + i) = rand() % 9 + 1;
        cout << *(nPtr + i) << " ";
    }
    cout << endl << endl << endl;
}
void random2(int* mPtr, int m) {
    setlocale(LC_ALL, "UKR");
    cout << "Вивiд другого масиву: " << endl << endl;
    for (int i(0); i < m; i++) {
        *(mPtr + i) = rand() % 10 + 1;
        cout << *(mPtr + i) << " ";
    }
    cout << endl << endl << endl;
}
void Desiigner(int* mPtr, int* nPtr, int* xPtr, int x, int m, int n, int* aPtr) {
    int k = 0;
    for (int i(0); i < n; i++, k++) {
        *(aPtr + i) = *(nPtr+i);
    }
    for (int i(0); i < m; i++) {
        *(aPtr + k + i) = *(mPtr + i);
    }
    cout << "Вивiд нового масиву, який включає в собi перший i другий: " << endl << endl;
    for (int i(0); i < m + n; i++) {
        cout << *(aPtr + i) << " ";
    }
    cout << endl << endl << endl;
    // Тепер починаю заповнення в основний масив, зі значенням х
    int kof = 0;
    int coc = 0;
    for (int i(0); i < m + n; i++) {
        for (int j(0); j < m + n; j++) {
            if (*(aPtr + i) == *(aPtr + j)) {
                kof++;
            }

        }
        if (kof >= x) {
            break;
        }
        if (kof < 2) {
            *(xPtr + coc) = *(aPtr + i);
            coc++;
        }
        kof = 0;
    }
    for (int i(0); i < x; i++) {
        cout << *(xPtr + i) << " ";
    }
    cout << endl << endl << endl;
}
int main() {
    srand(time(0));
    setlocale(LC_ALL, "UKR");
    int m, n, x;

    cout << "Введiть кiлькiсть елементiв першого масиву: ";
    cin >> m;
    cout << endl;
    cout << "Введiть кiлькiсть елементiв другого масиву: ";
    cin >> n;
    cout << endl << endl;
    x = (m > n) ? n : m;
    int* mPtr = new int[m];

    int* nPtr = new int[n];
    int* xPtr = new int[x];
    int* aPtr = new int[m + n];
    random1(nPtr, n);
    random2(mPtr, m);
    Desiigner(mPtr, nPtr, xPtr, x, m, n, aPtr);
    delete[] xPtr;
    delete[] mPtr;
    delete[] nPtr;
    delete[] aPtr;
    system("pause");
    return 0;
}

Привет. Такая проблема, что после строчки int coc=0; Цикл с вложенным, там xPtr выходит за рамки, не понимаю почему, можете помочь пожалуйста решить проблему, чтобы ошибка не появлялась. Рекомендую попробовать пару раз запустить, иногда работает нормально, а иногда ошибку выдает. Если точнее, то пишет Out of memory.

READ ALSO
Не выполняется сложение с float

Не выполняется сложение с float

Я выполняю сложение float + floatМне надо в цикле прибавить к массиву типа float значение переменной Eps=0

110
Помогите разобраться с интерфейсом

Помогите разобраться с интерфейсом

При попытке скомпилировать проект возникает ошибка

118
Как изменить цвет конкретного текста для вывода в консоль а не всей консоли?

Как изменить цвет конкретного текста для вывода в консоль а не всей консоли?

Я хочу отдельный вывод в программе выделить с помощью цветовНо при использовании таких вариантов как например:

176
оповещение о подключении к сети

оповещение о подключении к сети

Есть ли в линукс какое нибудь оповещение, когда подключаешься к сети? Это для программированияЯ хочу отслеживать интерфейс например, но не знаю...

125