Функции инициализации массива
Я играл с 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
но я хочу понять, почему это не работает :)