Функции инициализации массива

Я играл с C ++ и наткнулся на эту проблему. Я пытаюсь инициализировать указатель массива в куче, и он работает внутриinitialize()где это выводит69, но вmain()вылетает с ошибкойEXC_BAD_ACCESS.

#include <iostream>

void initialize(int* array, int size) {
    array = new int[size];

    // Testing
    array[2] = 69;
    std::cout << array[2] << std::endl; // Works fine
}

int main() {

    int size = 3;
    int* array;

    // Initializing
    initialize(array, size);

    // Testing
    std::cout << array[2] << std::endl; // Crash, EXC_BAD_ACCESS

    // Cleanup
    delete[] array;
    array = nullptr;


    return EXIT_SUCCESS;
}

Пожалуйста, помогите мне понять проблему с этим.

Да, я знаю, что должен использоватьstd::vector но я хочу понять, почему это не работает :)

Ответы на вопрос(3)

Ваш ответ на вопрос