相关疑难解决方法(0)

964
推荐指数
5
解决办法
11万
查看次数

使用new分配的数组是否可以使用初始化程序?

在我正在阅读的书中(Herbert Schildt的C++ Complete Reference),它表示没有使用分配的数组new可以有一个初始化器.

我不能使用new?初始化动态分配的数组?如果不是什么原因呢?

c++ dynamic-arrays

11
推荐指数
1
解决办法
4254
查看次数

C++程序......超调?

我在C++方面很不错,但我可能错过了一些适用于此的细微差别.或许我完全错过了一个巨大的概念,我不知道.我的程序立即崩溃("blah.exe没有响应")约1/5次运行(其他时候它运行完全正常)并且我将问题跟踪到一个构造函数,用于在主要功能的开头.以下是导致问题的代码(在构造函数中):

int ii;
for(ii=0;ii<=255;ii++)
{
    cout<<"ent "<<ii<<endl;
    entity_list[ii]=NULL;
}
for(ii=0;ii<=255;ii++)
{
    cout<<"sec "<<ii<<endl;
    sector_list[ii]=NULL;
}
entity_list[0] = new Entity(0,0);
entity_list[0]->_world = this;
Run Code Online (Sandbox Code Playgroud)

特别是第二个for循环.cout引用是新的,以便告诉它有麻烦的地方.它会将整个"ent 1"打印到"ent 255",然后将"sec 1"打印到"sec 255",然后立即崩溃,好像它是第二次for循环的第257次运行.我设置第二个for循环直到"ii <= 254",这停止了所有崩溃.C++代码是否倾向于"过冲"循环或什么?是什么导致它在这个特定的循环中崩溃似乎是随机的?

顺便说一句,entity_list和sector_list分别指向名为Entity和Sector的类,但它们没有构造任何东西,所以我认为它不相关.我还在头文件中有一个Entity类的前向声明,但由于没有构造,我认为它也不相关.

c++ debugging

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