我确定它很小,但是在初始化之前,我不断收到有关如何继续尝试使用它的初始化错误。
#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/