小编Mad*_*art的帖子

数组初始化函数

我正在玩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;
}
Run Code Online (Sandbox Code Playgroud)

请帮我理解这个问题.

是的,我知道我应该使用,std::vector但我想了解为什么这不起作用:)

c++ arrays pointers function new-operator

2
推荐指数
1
解决办法
5467
查看次数

标签 统计

arrays ×1

c++ ×1

function ×1

new-operator ×1

pointers ×1