不好意思纏着大家,但這一直給我帶來一些痛苦。下面的代碼:用sprintf掙扎...有些愚蠢?
char buf[500];
sprintf(buf,"D:\\Important\\Calibration\\Results\\model_%i.xml",mEstimatingModelID);
mEstimatingModelID是一個整數,目前持股價值爲0。
很簡單,但調試表明這種情況正在發生:
0x0795f630 "n\Results\model_0.xml"
即它缺少字符串的開頭。
任何想法?這很簡單,但我無法弄清楚。
謝謝!
你確定它不是調試器愚弄你?嘗試使用關閉優化的調試版本,或者更輕鬆地輸出「buf」的值。 – 2011-04-12 15:46:46
您何時檢查結果:在此功能中,還是以後的某個時間?你沒有從這個函數返回一個指向「buf」的指針,對嗎?你可能知道這一點,但你不能從函數返回一個指向基於棧的變量的指針;只要函數返回,變量就會變成垃圾。 – 2011-04-12 15:48:26
在Ideone獨立作品 - http://www.ideone.com/wJJ6o,看起來像你的調試器正在玩。 – 2011-04-12 15:53:56