私は脳画像I/Oの10年以上の歴史を持つ "標準"ライブラリを扱っています。私はこの関数に遭遇しました:関数は自動変数へのポインタを返します
nifti_image* nifti_image_read(const char *hname , int read_data){
nifti_image* nim;
...
<<<some IO operations>>>
...
return nim;
}
私の質問は、どうやって自動変数へのローカルポインタを返すのでしょうか? nimポインタが範囲外になり、関数の完了後に削除されるはずなので、この方法は禁止されていませんか?
私はすでにthis質問を読みましたが、私の答えを得ることができませんでした:
数値で数値のコピーを返しています。おそらく、 'some IO operations'ロードは、その寿命が 'nifti_image_read()'の寿命を超える可能性のあるデータのアドレスであると考えられます。それはちょうどいいです、そして、それはその住所を返すです。 – ThingyWotsit
@ThingyWotsit私は参考値と比較して値を返すことについていくつかの研究を行い、今ポイントを得ました。ありがとう。 – Sourena