因此,我正在使用一個具有超過十年曆史的「標準」庫,用於大腦圖像I/O。我遇到過這個功能:函數返回指向自動變量的指針
nifti_image* nifti_image_read(const char *hname , int read_data){
nifti_image* nim;
...
<<<some IO operations>>>
...
return nim;
}
我的問題是,這個函數是如何將一個本地指針返回給一個自動變量?這是不是禁止這種做法,因爲nim指針超出範圍,應該在函數完成後刪除?
我已經看過this的問題,但不能讓我的答案是:
它按值返回num的一個副本。據推測,「一些IO操作」會將一些數據的地址加載到數據中,這些數據的生存期可能會超過'nifti_image_read()'的數據。這很好,然後,返回它的地址。 – ThingyWotsit
@ThingyWotsit我做了一些關於價值迴歸與參照回報的研究,現在已經得到了重點。謝謝。 – Sourena