C Language in Hindi – Return an Array

What is an Array in c in hindi

What is an Array in c in hindi?

एक सरणी एक प्रकार की डेटा संरचना है जो डेटा के एक homogeneous संग्रह के निश्चित आकार को संग्रहीत करती है। संक्षेप में, हम कह सकते हैं कि सरणी एक ही प्रकार के variable का एक संग्रह है।

उदाहरण के लिए, यदि हम ‘n’ संख्या के वेरिएबल्स, n1, n2 … n को घोषित करना चाहते हैं, यदि हम इन सभी वेरिएबल्स को individually बनाते हैं, तो यह एक बहुत ही थकाऊ काम बन जाता है। ऐसे मामले में, हम एक ही प्रकार के variable बनाते हैं। किसी सरणी के प्रत्येक तत्व को तत्व के index का उपयोग करके एक्सेस किया जा सकता है।

आइए पहले देखें कि किसी फ़ंक्शन में single-dimensional array कैसे पास करें।

Passing array to a function

  1. #include <stdio.h>  
  2. void getarray(int arr[])  
  3. {  
  4.     printf(“Elements of array are : “);  
  5.     for(int i=0;i<5;i++)  
  6.     {  
  7.         printf(“%d “, arr[i]);  
  8.     }  
  9. }  
  10. int main()  
  11. {  
  12.    int arr[5]={45,67,34,78,90};  
  13.    getarray(arr);  
  14.    return 0;  
  15. }  

उपरोक्त program में, हमने पहले सरणी arr[] बनाया है और फिर हम इस सरणी को फ़ंक्शन getarray() में पास करते हैं। Getarray () function सभी सरणी arr[] के तत्वों को print करता है।

output

Return an Array in C

Passing array to a function as a pointer

Now, we will see how to pass an array to a function as a pointer.

  1. #include <stdio.h>  
  2. void printarray(char *arr)  
  3. {  
  4.     printf(“Elements of array are : “);  
  5.     for(int i=0;i<5;i++)  
  6.     {  
  7.         printf(“%c “, arr[i]);  
  8.     }  
  9. }  
  10. int main()  
  11. {  
  12.   char arr[5]={‘A’,‘B’,‘C’,‘D’,‘E’};  
  13.   printarray(arr);  
  14.   return 0;  
  15. }  

उपरोक्त कोड में, हमने फ़ंक्शन के लिए एक pointer के रूप में array पास की है। फ़ंक्शन Printarray() एक array के तत्वों को प्रिंट करता है।

Output 

Return an Array in C

How to return an array from a function

Returning pointer pointing to the array

  1. #include <stdio.h>  
  2. int *getarray()  
  3. {  
  4.     int arr[5];  
  5.     printf(“Enter the elements in an array : “);  
  6.     for(int i=0;i<5;i++)  
  7.     {  
  8.         scanf(“%d”, &arr[i]);  
  9.     }  
  10.     return arr;  
  11. }  
  12. int main()  
  13. {  
  14.   int *n;  
  15.   n=getarray();  
  16.   printf(“\nElements of array are :”);  
  17.   for(int i=0;i<5;i++)  
  18.     {  
  19.         printf(“%d”, n[i]);  
  20.     }  
  21.     return 0;  
  22. }  

उपरोक्त program में, getarray() फ़ंक्शन एक variable ‘arr‘ देता है। यह एक local वैरिएबल लौटाता है, लेकिन इसे लौटाए जाने के लिए एक अवैध मेमोरी स्थान है, जिसे stack में एक फ़ंक्शन के भीतर आवंटित किया गया है। चूंकि program control main() फ़ंक्शन पर वापस आता है , और stack के सभी variables मुक्त हो जाते हैं। इसलिए, हम यह कह सकते हैं कि यह प्रोग्राम मेमोरी लोकेशन लौटा रहा है, जो पहले से ही de-allocated है, इसलिए प्रोग्राम का आउटपुट segmentation fault है।

Output 

Return an Array in C

किसी फ़ंक्शन में किसी array को return करने के तीन सही तरीके हैं:

  • गतिशील रूप से आवंटित array का उपयोग करना
  • Static array का उपयोग करना
  • structure का उपयोग करना

किसी array को पास करके returning array जिसे फ़ंक्शन के पैरामीटर के रूप में लौटाया जाना है।

  1. #include <stdio.h>  
  2. int *getarray(int *a)  
  3. {  
  4.     
  5.     printf(“Enter the elements in an array : “);  
  6.     for(int i=0;i<5;i++)  
  7.     {  
  8.         scanf(“%d”, &a[i]);  
  9.     }  
  10.     return a;  
  11. }  
  12. int main()  
  13. {  
  14.   int *n;  
  15.   int a[5];  
  16.   n=getarray(a);  
  17.   printf(“\nElements of array are :”);  
  18.   for(int i=0;i<5;i++)  
  19.     {  
  20.         printf(“%d”, n[i]);  
  21.     }  
  22.     return 0;  
  23. }  

Output

Return an Array in C

Returning array using malloc() function.

  1. #include <stdio.h>  
  2. #include<malloc.h>  
  3. int *getarray()  
  4. {  
  5.     int size;  
  6.     printf(“Enter the size of the array : “);  
  7.     scanf(“%d”,&size);  
  8.     int *p= malloc(sizeof(size));  
  9.     printf(“\nEnter the elements in an array”);  
  10.     for(int i=0;i<size;i++)  
  11.     {  
  12.         scanf(“%d”,&p[i]);  
  13.     }  
  14.     return p;  
  15. }  
  16. int main()  
  17. {  
  18.    int *ptr;  
  19.    ptr=getarray();  
  20.    int length=sizeof(*ptr);  
  21.    printf(“Elements that you have entered are : “);  
  22.    for(int i=0;ptr[i]!=‘\0’;i++)  
  23.     {  
  24.       printf(“%d “, ptr[i]);  
  25.     }  
  26.   return 0;  
  27. }  

Output

Return an Array in C

Using Static Variable

  1. #include <stdio.h>  
  2. int *getarray()  
  3. {  
  4.   static int arr[7];  
  5.   printf(“Enter the elements in an array : “);  
  6.   for(int i=0;i<7;i++)  
  7.   {  
  8.       scanf(“%d”,&arr[i]);  
  9.   }  
  10.   return arr;  
  11.       
  12. }  
  13. int main()  
  14. {  
  15.   int *ptr;  
  16.   ptr=getarray();  
  17.   printf(“\nElements that you have entered are :”);  
  18.   for(int i=0;i<7;i++)  
  19.   {  
  20.       printf(“%d “, ptr[i]);  
  21.   }  
  22. }  

उपरोक्त कोड में, हमने getarray() फ़ंक्शन में static के रूप में arr[] variable बनाया है , जो पूरे program में उपलब्ध है। इसलिए, function getarray(), variable ‘arr’ की वास्तविक memory स्थान देता है।

output

Return an Array in C

Using Structure

संरचना एक उपयोगकर्ता-परिभाषित डेटा प्रकार है जिसमें विभिन्न प्रकार की वस्तुओं का संग्रह हो सकता है। अब, हम एक program बनाएंगे जो संरचना का उपयोग करके एक array देता है।

 

  1. #include <stdio.h>
  2. #include<malloc.h>
  3. struct array
  4. {
  5.     int arr[8];
  6. };
  7. struct array getarray()
  8. {
  9.     struct array y;
  10.     printf(“Enter the elements in an array : “);
  11.     for(int i=0;i<8;i++)
  12.     {
  13.         scanf(“%d”,&y.arr[i]);
  14.     }
  15.     return y;
  16. }
  17. int main()
  18. {
  19.   struct array x=getarray();
  20.   printf(“Elements that you have entered are :”);
  21.   for(int i=0;x.arr[i]!=‘\0’;i++)
  22.   {
  23.       printf(“%d “, x.arr[i]);
  24.   }
  25.     return 0;
  26. }

Output

Return an Array in C

Leave a Reply

DMCA.com Protection Status