无法创建动态整数数组

How*_*Gee 0 c++ arrays integer dynamic dynamic-arrays

我确定这是一个小的但我一直在初始化错误,关于我如何在初始化之前继续尝试使用它.

#include <iostream>
using namespace std;
int main()
{
    int* ordered;

    ordered[0] = 5;
    cout << ordered[0];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

奖金问题,我可以*ordered用来访问起始地址并使用循环数组*ordered++吗?

Alo*_*ave 5

int* ordered;
ordered[0] = 5;
Run Code Online (Sandbox Code Playgroud)

ordered是一个未初始化的指针.它指向任何随机地址.取消这样的指针会导致未定义的行为,并且很可能会导致程序崩溃.
为了能够用这个指针做一些有意义的事情,它需要指向一些有效的内存区域.您可以这样做:

int *ordered = new[x];
Run Code Online (Sandbox Code Playgroud)

现在,ordered指向一个足以容纳x整数的内存区域.但是,您必须记住在使用后释放内存:

delete []ordered;       
Run Code Online (Sandbox Code Playgroud)

在C++中,您最好使用std::vector而不是动态分配的数组,因为您不必使用随附的手动内存管理new [].简单地说,很难出错std::vector.