Function 在外部函数中指定指针

Function 在外部函数中指定指针,function,pointers,segmentation-fault,Function,Pointers,Segmentation Fault,我的问题如下: 总的来说,我有个地方 Shape* ext = NULL; FieldProbPhys2D* Fprob = NULL; (...) createCircleExt(ext, Fprob); 我想把形状指针分配到main之外,我承认这只是一个没有文本重载main的问题。 我有一个Utility.h及其对应的Utility.cpp,其中createCircleExt被定义为: void createCircleExt(Shape* f, FieldProbPhys2D* fiel

我的问题如下: 总的来说,我有个地方

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的映射区域内

这是否意味着转让仅限于本地?如果是这样的话,我该怎么解决呢

非常感谢


Simon和field是指针。它们被复制到createCircleExt的框架中。 在那里,将编写本地副本。如果保留createCircleExt,则旧值仍然有效

您可能希望使用指向指针或引用的指针