【问题标题】:Assigning pointer in an exterior function在外部函数中分配指针
【发布时间】:2012-03-11 10:29:36
【问题描述】:

我的问题如下: 主要是我在某个地方

Shape* ext = NULL;
FieldProbPhys2D* Fprob = NULL;
(...)
createCircleExt(ext, Fprob);

并且我想在 main 之外分配形状指针(我承认这只是没有文本重载的 main 的问题)。 我有一个 Utility.h 及其对应的 Utility.cpp(其中定义了 createCircleExt):

void createCircleExt(Shape* f, FieldProbPhys2D* field) {
(...)
f = new Circle(r, r, r);
(...)
field = new FieldProbPhys2D(Nx, Ny, 2*r, 2*r, Vg);

}

当我运行它时,我得到一个分段错误,valgrind 告诉我:访问不在地址 0x0 的映射区域内

这是否意味着分配只是本地的?如果是这种情况,我该如何解决?

非常感谢!

西蒙

【问题讨论】:

    标签: function pointers segmentation-fault


    【解决方案1】:

    f 和 field 是一个指针。它们被复制到createCircleExt() 的框架中。 在那里,本地副本将被覆盖。如果您离开createCircleExt(),旧值仍然有效。

    可能,您想使用指向指针或引用的指针。

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 2017-12-13
      • 1970-01-01
      相关资源
      最近更新 更多