सी के संदर्भ में सिंगलटन पॉइंटर का क्या अर्थ है?
इस मामले में मुझे लगता है कि Coverity एक भी char*
कि सरणी के पते लेने के द्वारा बनाई गई करने के लिए चार * की एक सरणी और एक सूचक के बीच अंतर करने के लिए बात कर रहा है।
Coverity आपको लगता है कि func
को buf
के पहले तत्व का पता पारित करके, आप इसे और अधिक मुश्किल से अपने आप को सुरक्षित रूप से है कि सरणी में लिखने के लिए क्योंकि आप आसानी से इसका आकार निर्धारित नहीं कर सकता के लिए कर रहे हैं चेतावनी है।
यह अपने कोड के सभी देखे बिना सुनिश्चित करने के लिए मुश्किल है, लेकिन यह सोचते हैं buf
एक सरणी आप कहीं अपने उच्च-स्तरीय समारोह तो उस समारोह से buf
पर sizeof
ऑपरेटर का उपयोग सरणी के आकार निकलेगा में घोषित किया है ।
हालांकि, जब आप लाइन
func(&inbuf);
... func
पर func
को buf
का पता पारित केवल कि सरणी के पहले तत्व के लिए सूचक प्राप्त करता है। func
से अब आप sizeof
का उपयोग सरणी के आकार को निर्धारित करने के लिए नहीं कर सकते - it will just return the size of the pointer - और इसलिए आप उस पॉइंटर को सुरक्षित रूप से लिख नहीं सकते हैं कि सरणी में कितनी जगह है।
यह नाजुक कोड बनाता है, और इसलिए खराब अभ्यास है।
एक सिंगलटन वैश्विक की तरह है जो केवल एक बार बनाया जाएगा और जब भी इसे एक्सेस किया जा सकता है। इसके लिए और अधिक जांचें: http://www.infernodevelopment.com/singleton-c – NKamrath
हमें बफ घोषित करने वाली रेखा दिखाएं। –