Не удаётся заполнить и вывести массив

Если ввести для второго массива (setB) число 9 для размерности массива, слово Set не выводится, только "B: ". Если ввести число >= 10, выводится мусорное значение в конце массива и cout << "Set B: { "; не выводится.

Подскажите, пожалуйста, решение проблемы.

#include <iostream>
using namespace std;

void printSet(int setA[], int sizeA) {
    for (int i = 0; i < sizeA; i++)
        cout << setA[i] << " ";
    cout << "}";
}

void fillSet(int setA[], int sizeA) {
    for (int i = 0; i < sizeA; i++)
        setA[i] = rand() % 31;
}

int main() {
    srand(time(0));
    //creating sets
    int sizeA = 0, sizeB = 0;
    int* setA = new int[sizeA];
    int* setB = new int[sizeB];

    //inputting sizes and values of sets
    cout << "Enter the size of set A: ";
    cin >> sizeA;
    cout << "Set A: { ";
    fillSet(setA, sizeA);
    printSet(setA, sizeA);
    cout << endl << "Enter the size of set B: ";
    cin >> sizeB;
    cout << "Set B: { ";
    fillSet(setB, sizeB);
    printSet(setB, sizeB);

    delete[] setA;
    delete[] setB;
}

Ответы (1 шт):

Автор решения: Harry

Как вы думаете, сколько памяти вы выделили для массивов здесь?

int sizeA = 0, sizeB = 0;
int* setA = new int[sizeA];
int* setB = new int[sizeB];

При выделении памяти вы запрашиваете нулевое ее количество.

Как минимум, память надо выделять после того, как становится известно, сколько ее вам требуется...

→ Ссылка