我目前正在使用 C++,我面临着这个挑战。这是头文件中我的类的代码:
class PID
{
private:
int PID;
int total;
public:
PID(); // Constructor
int returnPID(); // Returns PID.
};
这是cpp文件中的代码声明:
PID::PID()
{
PID=INT_MAX;
total=0;
}
int PID::returnPID()
{
return PID;
}
这是包含指向类 PID 对象的指针的表的 main 中的声明和初始化:
PID* table[1000000];
for (int i=0; i<1000000; i++)
{
table[i]=new PID;
}
所以我想这使用我在上面创建的构造函数将 PID 设置为 MAX_INT。当我尝试在初始化中使用 returnPID 访问 table[i].PID 的内容时,一切正常,如下所示:
for (int i=0; i<1000000; i++)
{
table[i]=new PID;
int display=table[i]->returnPID();
cout<<display<<endl;
}
当我尝试在外部和初始化之后访问 table[i] 内容时,就会出现问题。我的主要崩溃并返回一个数字(-1073741571)作为错误。似乎连一个来自 main 的命令都没有执行。这是似乎重现问题的代码示例:
for (int i=0; i<1000000; i++)
{
table[i]=new PID;
}
for (int i=0; i<1000000; i++)
{
int display=table[i]->returnPID();
cout<<display<<endl;
}
我已经为此工作了两个多小时,但没有找到任何解决方案,这似乎不合逻辑。有人对此有任何解释吗?
编辑:任何少于 1.000.000 个点的表都可以正常工作。也许它与此有关,尽管我仍然没有看到联系。