C - returning string -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 3 जवाब
क्या आप लोग मुझे समझ सकते हैं क्यों मेरा फ़ंक्शन मुझे स्ट्रिंग वापस करने की अनुमति नहीं देता है मैंने इस साइट पर कुछ कोड की समीक्षा की है, और मैं इसे काम करने के लिए प्रतीत नहीं कर सकता अन्य प्रश्नों के उत्तर ने सुझाव दिया है कि लोग फ़ंक्शन को परिभाषित करते हैं:
const char * stringToRetrun () {/ * कुछ कार्य * / वापसी स्ट्रिंग; }
लेकिन जब मैं कोशिश करता हूं और उसी प्रारूप का पालन करता हूं, तो मेरे कंपाइलर ने अमान्य प्रकार त्रुटियों / चेतावनी के एक पूरे समूह को बाहर कर दिया।
मैंने अपना प्रश्न नीचे पोस्ट किया है:
char * printMenu () {char message [100] = "नीचे से एक विकल्प चुनें: \ n"; Strcat (संदेश, "(1) सर्वर पर सभी फाइलों की सूची दें \ n"); Strcat (संदेश, "(2) सर्वर से फ़ाइल पुनर्प्राप्त करें \ n"); strcat (संदेश, "(3) सर्वर से सभी फ़ाइलों को पुनर्प्राप्त करें \ n"); घुमटा (संदेश, "(4) कनेक्शन बंद करें \ n"); घुमंतू (संदेश, "अपना चयन दर्ज करें: \ n"); वापसी संदेश; }
किसी भी मदद की सराहना की जाएगी।
संदेश के लिए भंडारण
संदेश के लिए भंडारण < कोड> प्रिंटमेनू () फ़ंक्शन (क्योंकि यह एक स्थानीय सरणी है)। तो आप बस
वापस संदेश नहीं कर सकते हैं और फिर बाद में स्ट्रिंग तक पहुंचने में सक्षम होंगे। यह अपरिभाषित व्यवहार है और गलत है।
स्ट्रिंग सी में संभालने के लिए अजीब हैं। आप या तो:
- कॉलर के लिए स्थान को आवंटित कर सकते हैं स्ट्रिंग, और उस डेटा को उस स्थान में डेटा की प्रतिलिपि बनाते हैं।
- फ़ंक्शन को नई जगह आवंटित करें और एक पॉइंटर लौटा दें, जिससे कॉलर को आवंटित स्थान को साफ करने की आवश्यकता होती है।
Comments
Post a Comment