【发布时间】:2013-05-01 14:49:04
【问题描述】:
是否可以在不分配内存的情况下使用引用运算符(->)调用函数。 我在某些情况下尝试过这段代码
Foo *fooObject;
fooObject->someFunction;
我对这件事感到困惑。这在 Dev C++ 中运行良好,但在 Visual C++ 中崩溃。
【问题讨论】:
-
这不是有效的代码(实际上是未定义的行为)。这是没有意义的,因为 fooObject(指向 Foo 的指针)没有被初始化。它可以指向任何地方。如果你不想在堆上分配内存,你可以在堆栈上做例如: Foo fooObj; fooObj.someFunction().
-
“可能”是什么意思?您可以编写它(您的程序在可以编译的意义上是“格式良好的”),但正如 maverik 所说,它是未定义的行为。
标签: visual-c++ object dev-c++