मैंने sizeof
मेमोरी-संबंधित ऑपरेशनों के लिए उपयोग की दो शैलियों को देखा है (जैसे memset
या में malloc
):
sizeof(type)
, तथाsizeof variable
याsizeof(variable)
आप किसे पसंद करेंगे या आप दो शैलियों के मिश्रण का उपयोग करेंगे, और आप प्रत्येक शैली का उपयोग कब करेंगे? प्रत्येक शैली के पेशेवरों और विपक्ष क्या हैं और जब आप उनका उपयोग करते हैं?
एक उदाहरण के रूप में, मैं निम्नलिखित स्थितियों को देख सकता हूँ जहाँ एक शैली मदद करती है और दूसरी नहीं:
जब आपको सूचक अप्रत्यक्ष रूप से गलत मिलता है:
type *var;
...
memset(var, 0, sizeof var); /* oops */
जब प्रकार बदलता है:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */