我有一个以下的结构车:
struct Car {
public:
integer number;
Car *right;
Car(double a, Car *f): number(a), right(f){}
};
道路类,在.h:
中定义class Road
{
public:
int road_num;
Car* police;
};
例如,我想模拟汽车链条之类的东西,每辆汽车都有指向下一辆汽车的指针。 (我知道我可以使用清单,但我不被允许,所以我想到了这样的事情。)
我希望能够在这条特定的道路上定义警车(以及其他车辆)。而且我想给已经在主要部分的这辆警车提供一个号码,然后能够在道路级别的成员职能中改变它。我有一个问题如何超过道路类的Car变量
主要:
Road road88;
(*(road88.police)).number=33;
然后在Road-Class的成员函数中的某个地方:
(*police).number=11;
我可以完成程序,但是当我运行它时,我收到以下错误:
Segmentation fault (core dumped)
如何在88号公路上超过警车? 非常感谢。
答案 0 :(得分:2)
您永远不会初始化指向汽车的指针,因此它指向垃圾记忆。尝试:
road88.police = new Car;
road88.police->number = 33; // same as (*(road88.police)).number = 33;;
最好在构造函数中初始化它。
将指针用作字段可能非常棘手。我建议调查三个规则,并且非常熟悉动态分配的复杂性。