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

एक सी ++ फ़ंक्शन में दो आयामी सरणी पास करना


C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी अनुक्रमणिका के बिना सरणी का नाम निर्दिष्ट करके किसी सरणी में एक सूचक पास कर सकते हैं। किसी फ़ंक्शन में 2D सरणी पास करने के तीन तरीके हैं -

2D सरणी के स्तंभों का आकार निर्दिष्ट करें

void processArr(int a[][10]) {
   // Do something
}

पॉइंटर्स वाली सरणी पास करें

void processArr(int *a[10]) {
   // Do Something
}

// When callingint *array[10];
for(int i = 0; i < 10; i++)
   array[i] = new int[10];
processArr(array);

एक पॉइंटर को एक पॉइंटर पास करें

void processArr(int **a) {
   // Do Something
}
// When calling:
int **array;
array = new int *[10];
for(int i = 0; i <10; i++)
   array[i] = new int[10];
processArr(array);

उदाहरण

#include<iostream>
using namespace std;

void processArr(int a[][2]) {
   cout << "element at index 1,1 is " << a[1][1];
}
int main() {
   int arr[2][2];
   arr[0][0] = 0;
   arr[0][1] = 1;
   arr[1][0] = 2;
   arr[1][1] = 3;

   processArr(arr);
   return 0;
}

आउटपुट

यह आउटपुट देगा -

element at index 1,1 is 3

  1. सी ++ फ़ंक्शन से स्थानीय सरणी कैसे वापस करें?

    एक स्थानीय सरणी को सीधे C++ फ़ंक्शन से वापस नहीं किया जा सकता है क्योंकि यह फ़ंक्शन कॉल के बाद स्मृति में मौजूद नहीं हो सकता है। इसे हल करने का एक तरीका फ़ंक्शन में एक स्थिर सरणी का उपयोग करना है। चूंकि स्थैतिक सरणी का जीवनकाल संपूर्ण कार्यक्रम है, इसे उपरोक्त समस्या के बिना आसानी से C++ फ़ंक्शन से

  1. सी ++ में किसी फ़ंक्शन से सरणी कैसे वापस करें?

    सी ++ पूरे सरणी को वापस नहीं करता है लेकिन यह पॉइंटर को सरणी में वापस कर सकता है। फ़ंक्शन के बाहर, स्थानीय चर का पता वापस नहीं किया जा सकता है। स्थानीय चर को स्थिर बनाकर, यह स्थानीय चर का पता वापस कर सकता है। पॉइंटर वापस करने के लिए सिंटैक्स निम्नलिखित है। int * function_name() { body } यहां, fun

  1. एक सी ++ फ़ंक्शन में एक सरणी पास करना

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे को पॉइंटर पास कर सकते हैं। यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक मे