我确定它很小,但是在初始化之前,我不断收到有关如何继续尝试使用它的初始化错误。

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

    ordered[0] = 5;
    cout << ordered[0];
    return 0;
}


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

最佳答案

int* ordered;
ordered[0] = 5;


ordered是未初始化的指针。它指向任何随机地址。取消引用此类指针会导致未定义的行为,并且很可能会使您的程序崩溃。
为了能够使用此指针执行有意义的操作,它需要指向某个有效的内存区域。您可以这样做:

int *ordered = new[x];


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

delete []ordered;




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

关于c++ - 创建动态整数数组时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14768708/

10-08 21:25