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
- #include <stdio.h>
- void getarray(int arr[])
- {
- printf(“Elements of array are : “);
- for(int i=0;i<5;i++)
- {
- printf(“%d “, arr[i]);
- }
- }
- int main()
- {
- int arr[5]={45,67,34,78,90};
- getarray(arr);
- return 0;
- }
उपरोक्त program में, हमने पहले सरणी arr[] बनाया है और फिर हम इस सरणी को फ़ंक्शन getarray() में पास करते हैं। Getarray () function सभी सरणी arr[] के तत्वों को print करता है।
output
Passing array to a function as a pointer
Now, we will see how to pass an array to a function as a pointer.
- #include <stdio.h>
- void printarray(char *arr)
- {
- printf(“Elements of array are : “);
- for(int i=0;i<5;i++)
- {
- printf(“%c “, arr[i]);
- }
- }
- int main()
- {
- char arr[5]={‘A’,‘B’,‘C’,‘D’,‘E’};
- printarray(arr);
- return 0;
- }
उपरोक्त कोड में, हमने फ़ंक्शन के लिए एक pointer के रूप में array पास की है। फ़ंक्शन Printarray() एक array के तत्वों को प्रिंट करता है।
Output
How to return an array from a function
Returning pointer pointing to the array
- #include <stdio.h>
- int *getarray()
- {
- int arr[5];
- printf(“Enter the elements in an array : “);
- for(int i=0;i<5;i++)
- {
- scanf(“%d”, &arr[i]);
- }
- return arr;
- }
- int main()
- {
- int *n;
- n=getarray();
- printf(“\nElements of array are :”);
- for(int i=0;i<5;i++)
- {
- printf(“%d”, n[i]);
- }
- return 0;
- }
उपरोक्त program में, getarray() फ़ंक्शन एक variable ‘arr‘ देता है। यह एक local वैरिएबल लौटाता है, लेकिन इसे लौटाए जाने के लिए एक अवैध मेमोरी स्थान है, जिसे stack में एक फ़ंक्शन के भीतर आवंटित किया गया है। चूंकि program control main() फ़ंक्शन पर वापस आता है , और stack के सभी variables मुक्त हो जाते हैं। इसलिए, हम यह कह सकते हैं कि यह प्रोग्राम मेमोरी लोकेशन लौटा रहा है, जो पहले से ही de-allocated है, इसलिए प्रोग्राम का आउटपुट segmentation fault है।
Output
किसी फ़ंक्शन में किसी array को return करने के तीन सही तरीके हैं:
- गतिशील रूप से आवंटित array का उपयोग करना
- Static array का उपयोग करना
- structure का उपयोग करना
किसी array को पास करके returning array जिसे फ़ंक्शन के पैरामीटर के रूप में लौटाया जाना है।
- #include <stdio.h>
- int *getarray(int *a)
- {
- printf(“Enter the elements in an array : “);
- for(int i=0;i<5;i++)
- {
- scanf(“%d”, &a[i]);
- }
- return a;
- }
- int main()
- {
- int *n;
- int a[5];
- n=getarray(a);
- printf(“\nElements of array are :”);
- for(int i=0;i<5;i++)
- {
- printf(“%d”, n[i]);
- }
- return 0;
- }
Output
Returning array using malloc() function.
- #include <stdio.h>
- #include<malloc.h>
- int *getarray()
- {
- int size;
- printf(“Enter the size of the array : “);
- scanf(“%d”,&size);
- int *p= malloc(sizeof(size));
- printf(“\nEnter the elements in an array”);
- for(int i=0;i<size;i++)
- {
- scanf(“%d”,&p[i]);
- }
- return p;
- }
- int main()
- {
- int *ptr;
- ptr=getarray();
- int length=sizeof(*ptr);
- printf(“Elements that you have entered are : “);
- for(int i=0;ptr[i]!=‘\0’;i++)
- {
- printf(“%d “, ptr[i]);
- }
- return 0;
- }
Output
Using Static Variable
- #include <stdio.h>
- int *getarray()
- {
- static int arr[7];
- printf(“Enter the elements in an array : “);
- for(int i=0;i<7;i++)
- {
- scanf(“%d”,&arr[i]);
- }
- return arr;
- }
- int main()
- {
- int *ptr;
- ptr=getarray();
- printf(“\nElements that you have entered are :”);
- for(int i=0;i<7;i++)
- {
- printf(“%d “, ptr[i]);
- }
- }
उपरोक्त कोड में, हमने getarray() फ़ंक्शन में static के रूप में arr[] variable बनाया है , जो पूरे program में उपलब्ध है। इसलिए, function getarray(), variable ‘arr’ की वास्तविक memory स्थान देता है।
output
Using Structure
संरचना एक उपयोगकर्ता-परिभाषित डेटा प्रकार है जिसमें विभिन्न प्रकार की वस्तुओं का संग्रह हो सकता है। अब, हम एक program बनाएंगे जो संरचना का उपयोग करके एक array देता है।
- #include <stdio.h>
- #include<malloc.h>
- struct array
- {
- int arr[8];
- };
- struct array getarray()
- {
- struct array y;
- printf(“Enter the elements in an array : “);
- for(int i=0;i<8;i++)
- {
- scanf(“%d”,&y.arr[i]);
- }
- return y;
- }
- int main()
- {
- struct array x=getarray();
- printf(“Elements that you have entered are :”);
- for(int i=0;x.arr[i]!=‘\0’;i++)
- {
- printf(“%d “, x.arr[i]);
- }
- return 0;
- }
Output