sizeof(float) * filter_len
का उपयोग करें जब तक कि आप कुछ अजीब कार्यान्वयन में काम नहीं कर रहे हैं जहां sizeof(float) == sizeof(char)
।
memset(delay_line, 0, sizeof(float) * filter_len);
संपादित करें: Stephan202 अंक टिप्पणी में बाहर के रूप में, 0.0 memset के लिए कोड करने के बाद से 0.0 के लिए आईईईई मानक प्रतिनिधित्व सब शून्य बिट्स है एक विशेष रूप से आसान चल बिन्दु मान है।
मेमेट स्मृति की दायरे में काम कर रहा है, संख्याओं के दायरे में नहीं। दूसरा पैरामीटर, एक इंट घोषित किया गया है, एक हस्ताक्षरित चार को डाला जाता है। यदि सी ++ का आपका कार्यान्वयन प्रति बाइट चार बाइट्स का उपयोग करता है, तो निम्नलिखित रिश्ते हैं:
- यदि आप 0 के साथ फ्लोट को याद करते हैं, तो मान 0.0 होगा।
- यदि आप फ्लोट को 1 के साथ याद करते हैं, तो मूल्य 2.36943e-38 होगा।
- यदि आप 42 के साथ फ्लोट को याद करते हैं, तो मूल्य 1.51137e-13 होगा।
- यदि आप 64 के साथ फ्लोट को याद करते हैं, तो मूल्य 3.00392 होगा।
तो शून्य एक विशेष मामला है।
इस अजीब लगता है, याद करते हैं कि memset <cstring> या <string.h> में घोषित किया जाता है, और अक्सर जैसी चीजों को बनाने के लिए प्रयोग किया जाता है "***************" या "------------------"। यह भी शून्य स्मृति में उपयोग किया जा सकता है एक निफ्टी दुष्प्रभाव है।
मिलान बाबुस्कोव टिप्पणियों में बताते हैं, मैक और लिनक्स पर पल के लिए उपलब्ध एक फ़ंक्शन बजरो (गैर मानक और बहिष्कृत) है, लेकिन माइक्रोसॉफ्ट नहीं है, क्योंकि यह विशेष रूप से शून्य को सुरक्षित रूप से सेट करने के लिए तैयार है, सुरक्षित रूप से कुछ निर्देश छोड़ देता है। यदि आप इसका उपयोग करते हैं, और आपके कंपाइलर की एक प्यूरिटनिकल भविष्य की रिलीज इसे छोड़ देती है, तो स्थानीय अनुकूलता पैच में खुद को बजरो लागू करने के लिए तुच्छ है, जब तक कि भविष्य की रिलीज में ने किसी अन्य उद्देश्य के लिए नाम का पुन: उपयोग नहीं किया।
स्रोत
2009-05-18 12:06:25
यदि आप वेक्टर का उपयोग नहीं कर सकते हैं, तो यह करने के लिए यह सबसे अधिक प्रकार का सुरक्षित, आधुनिक सी ++ तरीका है। मेमसेट तेजी से हो सकता है, लेकिन यह सिर्फ टाइप प्रकार की जांच के साथ शून्य बाइट्स है, अगर आपको अपना गणित गलत लगता है तो आप परेशानी में हैं। – iain
मैं fill_n को पसंदीदा विधि होने पर सहमत हूं, भले ही यह थोड़ा धीमा हो (और मुझे विश्वास होगा कि जब मैं इसे देखता हूं;) स्मृति के विपरीत, यह विधि दोनों प्रकार सुरक्षित और अधिक आसान 'एक्स्टेंसिबल/अनुकूलनीय' है (आप उदाहरण के लिए 4.2 को भी शुरू करने के लिए इस विधि का उपयोग कर सकते हैं) – Pieter