2011-07-08 39 views
2

我的程序崩潰了結構賦值的EXC_BAD_ACCESS - 不知道爲什麼會發生這種情況

params.hessianThreshold = threshold; 

CvSURFParams cvSURFParams(double threshold, int extended) 
{ 
    CvSURFParams params; 
    params.hessianThreshold = threshold; 
    params.extended = extended; 
    params.upright = 0; 
    params.nOctaves = 4; 
    params.nOctaveLayers = 2; 
    return params; 
} 

我不知道爲什麼它會在靜態分配上崩潰...任何想法?

+0

如果我沒有錯,在Objective-C中,每一件事都是一個參考。所以,你應該**新的'params'並使用它。爲了測試,檢查'params'是否爲** null **。 – Mahesh

+0

調用函數是否嘗試將結果存儲在無效指針中?如果是這樣,這可能是由編譯器優化造成的,因爲通過傳遞目標地址並寫入它來執行返回。 – ughoavgfhw

+0

你在'struct'聲明中有'double hessianThreshold'嗎? – Greg

回答

0

如果該代碼在標題中,應該是static inline CvSURFParams cvSURFParams(double threshold, int extended)(將它添加到static inline)。如果它不在標題中,請將其放在標題中。

相關問題