2012-03-11 7 views
0

私の問題は次のとおりです:メインで 私はどこか割り当てポインタが

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

を持っていると私は、メインの外形状のポインタを割り当てる(私はそれがないだけの問題で認めますテキストがメインにオーバーロードされています)。 私はUtility.hとを持ってそれに対応する(createCircleExtが定義されている)Utility.cpp:

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

}私はこれを実行すると

は私がセグメンテーションフォールトを取得し、valgrindのは私に語った:アクセスがないマッピングされた範囲内アドレス0x0の領域

これは、割り当てがローカルのみであることを意味しますか?そのような場合は、どうすれば修正できますか?

ありがとうございます!

シモン

答えて

0

fとフィールドはポインタです。それらはcreateCircleExt()のフレームにコピーされます。 ローカルコピーが上書きされます。 createCircleExt()を終了すると、古い値は引き続き有効です。

おそらく、ポインターまたは参照へのポインターを使用したいと思うかもしれません。

関連する問題