c++ - Pointer array and sizeof confusion -
निम्नलिखित कोड आउटपुट 4 क्यों करता है?
char ** संकेतक = नया चार * [1]; Std :: cout & lt; & lt; आकारफ (सूचक) & lt; & lt; "\ N";
मेरे पास एक सरणी है, लेकिन इसकी लंबाई 1 होनी चाहिए, क्या नहीं?
सूचक
एक सूचक है यह एक सूचक का आकार है, जो आपके सिस्टम पर 4 बाइट्स है।
* सूचक
भी एक सूचक है sizeof (* pointer)
4 भी हो जाएगा।
** सूचक
एक कक्ष है। sizeof (** सूचक) हो जाएगा 1. नोट करें कि ** सूचक एक वर्ण है क्योंकि इसे
char **
के रूप में परिभाषित किया गया है। सरणी के आकार में नए प्रवेशकों ने प्रवेश किया।
ध्यान दें कि
का उपयोग करके निर्धारित नहीं किया जा सकता है। नोट 2: यदि आपने इसे परिभाषित किया है: sizeof
एक कंपाइलर ऑपरेटर है। यह संकलन समय पर एक स्थिरता के लिए प्रदान किया जाता है। कुछ भी जो रनटाइम पर बदल सकता है (जैसे कि एक नया ऐरे के आकार का)
चार * सरणी [1]; Char ** pointer = array;
अब सूचक
पहले से ही समान मान है, लेकिन अब आप कह सकते हैं:
int arraySize = sizeof (array ); // सरणी int सरणी के कुल स्थान का आकार = लेंस = आकार (सरणी) / आकार (सरणी [0]); // तत्व की संख्या == 1 यहां।
Comments
Post a Comment