c++ - Calculate size of array of character pointers -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 3 जवाब
मेरे पास निम्न फ़ंक्शन हैं
int func (char * param1 [], int param2 []) {// param1 array के आकार की गणना करना चाहते हैं}
मैंने कोशिश की < / P> <पूर्व>
n = sizeof (param1) / sizeof (चार *);
लेकिन यह मुझे सही उत्तर नहीं देता।
नोट कि फ़ंक्शन प्रोटोटाइप
int func (char * param1 [], int param2 []);
के बराबर है
int func (char ** param1, int * param2);
इसका मतलब है कि फ़ंक्शन पैरामीटर
param1 और
param2 पॉइंटर्स हैं, सरण नहीं हैं पॉइंटर्स और एरेज़ विभिन्न प्रकार के होते हैं।
आकारफ (परम 1) / आकारफ (चार *); // आकार के बराबर (char **) / sizeof (char *) // हमेशा 1
उपरोक्त अभिव्यक्ति हमेशा
1 के लिए मूल्यांकन करती है क्योंकि सभी सूचक का आकार प्रकार समान हैं (फ़ंक्शन पॉइंटर के लिए जिस पर
sizeof ऑपरेटर लागू नहीं किया जा सकता है)।
ऐसा इसलिए है क्योंकि आप किसी फ़ंक्शन में एक सरणी नहीं दे सकते। क्या वास्तव में पारित हो जाता है सरणी के पहले तत्व के लिए एक सूचक है सूचक को समारोह में पास की सरणी की कोई आकार जानकारी नहीं है इसलिए, आपको अपने फ़ंक्शन के लिए सरणी लंबाई को स्पष्ट रूप से पास करना होगा। इसमें प्रोटोटाइप होना चाहिए
int func (char * param1 [], int param2 [], int len_param1, int len_param2);
Comments
Post a Comment