Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में Array Decay क्या है?

किसी सरणी के प्रकार और आयामों के नुकसान को सरणी क्षय के रूप में जाना जाता है। यह तब होता है जब हम पॉइंटर या वैल्यू द्वारा एरे को फंक्शन में पास करते हैं। पहला पता उस सरणी को भेजा जाता है जो एक सूचक है। इसीलिए, सरणी का आकार मूल नहीं है।

यहाँ C++ भाषा में सरणी क्षय का एक उदाहरण दिया गया है,

उदाहरण

#include<iostream>
using namespace std;
void DisplayValue(int *p) {
   cout << "New size of array by passing the value : ";
   cout << sizeof(p) << endl;
}
void DisplayPointer(int (*p)[10]) {
   cout << "New size of array by passing the pointer : ";
   cout << sizeof(p) << endl;
}
int main() {
   int arr[10] = {1, 2, };
   cout << "Actual size of array is : ";
   cout << sizeof(arr) <endl;
   DisplayValue(arr);
   DisplayPointer(&arr);
   return 0;
}

आउटपुट

Actual size of array is : 40
New size of array by passing the value : 8
New size of array by passing the pointer : 8

सरणी क्षय को रोकने के लिए

सरणी क्षय को रोकने के लिए निम्नलिखित दो तरीके हैं।

  • सरणी के आकार को पैरामीटर के रूप में पारित करके सरणी क्षय को रोका जाता है और सरणी के पैरामीटर पर sizeof() का उपयोग नहीं करते हैं।

  • संदर्भ द्वारा फ़ंक्शन में सरणी पास करें। यह सरणी को सूचक में बदलने से रोकता है और यह सरणी क्षय को रोकता है।

यहाँ C++ भाषा में सरणी क्षय को रोकने का एक उदाहरण दिया गया है,

उदाहरण

#include<iostream>
using namespace std;
void Display(int (&p)[10]) {
   cout << "New size of array by passing reference: ";
   cout << sizeof(p) << endl;
}
int main() {
   int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
   cout << "Actual size of array is: ";
   cout << sizeof(arr) <<endl;
   Display(arr);
   return 0;
}

आउटपुट

Actual size of array is: 40
New size of array by passing reference: 40

  1. सी/सी++ में शून्य सूचक का आकार क्या है?

    शून्य सूचक का आकार सिस्टम से सिस्टम में भिन्न होता है। यदि सिस्टम 16-बिट है, तो शून्य सूचक का आकार 2 बाइट्स है। यदि सिस्टम 32-बिट है, तो शून्य सूचक का आकार 4 बाइट्स है। यदि सिस्टम 64-बिट है, तो शून्य सूचक का आकार 8 बाइट्स है। सी भाषा में शून्य सूचक के आकार को खोजने के लिए यहां एक उदाहरण दिया गया है

  1. अधिकतम न्यूनतम रूप में एक सरणी को पुनर्व्यवस्थित करने के लिए सी ++ प्रोग्राम

    हमें एक पूर्णांक सरणी दी गई है जिसे क्रमबद्ध/अक्रमित तरीके से व्यवस्थित किया जा सकता है। कार्य पहले सरणी को क्रमबद्ध करना है यदि मान बिना क्रमबद्ध हैं तो सरणी को इस तरह व्यवस्थित करें कि सरणी का पहला तत्व अधिकतम मान होगा, दूसरा न्यूनतम मान होगा, तीसरा दूसरा सबसे बड़ा मान होगा, चौथा होगा दूसरा न्यूनत

  1. इमेज ऐरे क्या है? C++ में उदाहरण देकर समझाएं

    डेटा के संग्रह को संग्रहीत और पुनर्प्राप्त करने के लिए एक सरणी एक सुविधाजनक तरीका है। OpenCV में, हम इस अवधारणा का उपयोग एक छवि सरणी में कई छवियों को लोड करने के लिए कर सकते हैं और उन्हें सरणी की अनुक्रमणिका संख्या का उपयोग करके दिखा सकते हैं। निम्न प्रोग्राम मैट्रिक्स सरणी में एकाधिक छवियों को लोड