दिलचस्प पोस्ट
जावा में एकत्रीकरण और संरचना के बीच कार्यान्वयन अंतर "आयात एरर: लिनक्स एसडीके अपग्रेड (1.9.35 -> 1.9.38) के बाद वेबपेज नामित कोई मॉड्यूल नहीं है" स्क्रीन बंद होने पर मैं अपनी एंड्रॉइड सेवा कैसे चालू रख सकता हूं? एंड्रॉइड के लिए ऑनलाइन रेडियो स्ट्रीमिंग एप ज़क्सिंग का उपयोग करते हुए QR कोड एन्कोडिंग और डिकोडिंग दो तरह से / द्विदिश शब्दकोश सी # में? एक उपयोगकर्ता नियंत्रण में सी # # # # # # # # # # # # # # # # # # परिवर्तन की मॉनिटर निर्देशिका आईफ़ोन – निजी कुंजी के साथ एनएसडीटा को सार्वजनिक कुंजी के साथ एन्क्रिप्ट करने और डिक्रिप्ट कैसे करें? JPQL कन्स्ट्रक्टर एक्सप्रेशन – org.hibernate.hql.ast.QuerySyntaxException: तालिका मैप नहीं है जांच कैसे करें कि एक मेज पर कौन-से ताले लगाए गए हैं जावा में हैशमैप और मानचित्र ऑब्जेक्ट्स के बीच अंतर क्या है? प्रारंभिक प्रतिबद्धता को कैसे संदर्भित करें? Google मानचित्र एपीआई V2 'मानचित्र लोड करने में विफल Google सर्वर से संपर्क नहीं किया जा सका जब जावा में एक स्ट्रिंग कचरा एकत्र किया जाएगा

सी ++ चेतावनी: स्ट्रिंग निरंतर से 'चार *' के लिए पदावनत रूपांतरण

मैं ग्नुप्लॉट का प्रयोग सी ++ में एक ग्राफ को आकर्षित करने के लिए कर रहा हूँ ग्राफ की उम्मीद के अनुसार साजिश है, लेकिन संकलन के दौरान एक चेतावनी है। चेतावनी का क्या मतलब है?

warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] 

यह फ़ंक्शन मैं उपयोग कर रहा हूं:

 void plotgraph(double xvals[],double yvals[], int NUM_POINTS) { char * commandsForGnuplot[] = {"set title \"Probability Graph\"", "plot 'data.temp' with lines"}; FILE * temp = fopen("data.temp", "w"); FILE * gnuplotPipe = popen ("gnuplot -persistent ", "w"); int i; for (i=0; i < NUM_POINTS; i++) { fprintf(temp, "%lf %lf \n", xvals[i], yvals[i]); //Write the data to a te mporary file } for (i=0; i < NUM_COMMANDS; i++) { fprintf(gnuplotPipe, "%s \n", commandsForGnuplot[i]); //Send commands to gn uplot one by one. } fflush(gnuplotPipe); } 

वेब के समाधान से एकत्रित समाधान "सी ++ चेतावनी: स्ट्रिंग निरंतर से 'चार *' के लिए पदावनत रूपांतरण"

स्ट्रिंग लीटरल्स const char की एक सरणी हैं, हम इसे मसौदा सी ++ मानक अनुभाग 2.14.5 स्ट्रिंग 2.14.5 से देख सकते हैं जो कहते हैं ( जोर दिया ):

साधारण स्ट्रिंग लीटरल और यूटीएफ -8 स्ट्रिंग लीटरल को संकीर्ण स्ट्रिंग लीटरल्स के रूप में भी जाना जाता है। एक संकीर्ण स्ट्रिंग शब्दशः प्रकार "सर कॉन्रेर ऑर" है , जहां n नीचे वर्णित स्ट्रिंग का आकार है, और स्थैतिक संग्रहण अवधि (3.7) है।

इसलिए यह परिवर्तन चेतावनी को निकाल देगा:

 const char * commandsForGnuplot[] = {"set title \"Probability Graph\"", "plot 'data.temp' with lines"}; ^^^^^ 

ध्यान दें, const डेटा को इंगित करने के लिए * गैर-कॉन्स्ट char ** को अनुमति देना एक बुरा विचार है चूंकि एक const या स्ट्रिंग को संशोधित करने के बाद अपरिभाषित व्यवहार होता है हम इसे खंड 7.1.6.1 जाकर देख सकते हैं । सीवी-क्वालिफायर जो कहते हैं:

सिवाय इसके कि किसी भी वर्ग के सदस्य घोषित किए गए परिवर्तन (7.1.1) को संशोधित किया जा सकता है, अपने जीवनकाल (3.8) के दौरान एक const वस्तु को संशोधित करने का कोई भी प्रयास अपरिभाषित व्यवहार में परिणाम देता है।

और अनुभाग 2.14.5 स्ट्रिंग 2.14.5 जो कहते हैं:

चाहे सभी स्ट्रिंग लीटरल अलग (अर्थात, ऑनोवर्लैपिंग ऑब्जेक्ट्स में संग्रहित होते हैं) कार्यान्वयन को परिभाषित किया गया है। स्ट्रिंग शब्दशः को संशोधित करने के प्रयास का असर अपरिभाषित है।