हर किसी को परेशान करने के लिए खेद है, लेकिन इससे मुझे कुछ दर्द हो रहा है। कोड यह रहा:sprintf के साथ संघर्ष ... कुछ बेवकूफ?
char buf[500];
sprintf(buf,"D:\\Important\\Calibration\\Results\\model_%i.xml",mEstimatingModelID);
mEstimatingModelID एक पूर्णांक है, वर्तमान में पकड़े मूल्य 0.
काफी सरल है, लेकिन डिबगिंग यह हो रहा है पता चलता है:
0x0795f630 "n\Results\model_0.xml"
अर्थात यह स्ट्रिंग की शुरुआत गायब है।
कोई विचार? यह साधारण सामान है, लेकिन मैं इसे समझ नहीं सकता।
धन्यवाद!
आप यकीन है कि यह डिबगर आप बेवकूफ बनाना नहीं है कर रहे हैं? ऑप्टिमाइज़ेशन बंद या बंद करने के साथ डीबग बिल्ड का प्रयास करें, 'buf' के मान को प्रिंट करें। –
आप परिणाम की जांच कब कर रहे हैं: इस समारोह में, या कुछ समय बाद? आप इस फ़ंक्शन से "buf" पर पॉइंटर वापस नहीं कर रहे हैं, है ना? आप शायद यह जानते हैं, लेकिन आप किसी फ़ंक्शन से स्टैक-आधारित चर में पॉइंटर वापस नहीं कर सकते हैं; जैसे ही फ़ंक्शन लौटाता है वैरिएबल कचरा बन जाता है। –
विचार में स्टैंडअलोन काम करता है - http://www.ideone.com/wJJ6o, ऐसा लगता है कि आपका डीबगर खेल रहा है। –