Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी में गतिशील रूप से 2 डी सरणी कैसे आवंटित करें?

एक एकल सूचक का उपयोग करके C में एक 2D सरणी को गतिशील रूप से आवंटित किया जा सकता है। इसका मतलब है कि आकार पंक्ति*कॉलम*डेटाटाइपसाइज का एक मेमोरी ब्लॉक मॉलोक का उपयोग करके आवंटित किया जाता है और मैट्रिक्स तत्वों तक पहुंचने के लिए पॉइंटर अंकगणित का उपयोग किया जा सकता है।

इसे प्रदर्शित करने वाला एक कार्यक्रम इस प्रकार दिया गया है।

उदाहरण

#include <stdio.h>
#include <stdlib.h> 
int main() {
   int row = 2, col = 3;
   int *arr = (int *)malloc(row * col * sizeof(int)); 
   int i, j;
   for (i = 0; i < row; i++)
      for (j = 0; j < col; j++)
         *(arr + i*col + j) = i + j;    
   printf("The matrix elements are:\n");
   for (i = 0; i < row; i++) {
      for (j = 0; j < col; j++) {
         printf("%d ", *(arr + i*col + j)); 
      }
      printf("\n");
   }
   free(arr); 
   return 0;
}

उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है।

The matrix elements are:
0 1 2 
1 2 3

आइए अब उपरोक्त कार्यक्रम को समझते हैं।

2-डी सरणी गिरफ्तारी को मॉलोक का उपयोग करके गतिशील रूप से आवंटित किया जाता है। फिर 2-डी सरणी को लूप और पॉइंटर अंकगणित के लिए नेस्टेड का उपयोग करके प्रारंभ किया जाता है। इसे दिखाने वाला कोड स्निपेट इस प्रकार है।

int row = 2, col = 3; 
int *arr = (int *)malloc(row * col * sizeof(int));
int i, j;
for (i = 0; i < row; i++)
   for (j = 0; j < col; j++)
      *(arr + i*col + j) = i + j; 

फिर 2-डी सरणी के मान प्रदर्शित होते हैं। अंत में गतिशील रूप से आवंटित स्मृति मुक्त का उपयोग करके मुक्त हो जाती है। इसे दिखाने वाला कोड स्निपेट इस प्रकार है।

printf("The matrix elements are:\n");
for (i = 0; i < row; i++) {
   for (j = 0; j < col; j++) {
      printf("%d ", *(arr + i*col + j)); 
   }
   printf("\n");
}
free(arr); 

  1. जावास्क्रिप्ट सरणी को क्रमबद्ध कैसे करें?

    The serializeArray( ) विधि .serialize() विधि जैसे सभी रूपों और रूपों के तत्वों को क्रमबद्ध करती है लेकिन आपके साथ काम करने के लिए एक JSON डेटा संरचना लौटाती है। मान लें कि PHP फ़ाइल में निम्नलिखित सामग्री है serialize.php -

  1. जावास्क्रिप्ट में मेमोरी कैसे आवंटित करें?

    प्रोग्रामिंग भाषा के बावजूद, स्मृति जीवन चक्र हमेशा एक जैसा ही होता है - अपनी जरूरत की मेमोरी आवंटित करें आवंटित मेमोरी का उपयोग करें (पढ़ें, लिखें) आवंटित स्मृति को तब जारी करें जब इसकी आवश्यकता न हो दूसरा भाग सभी भाषाओं में स्पष्ट है। आवंटित स्मृति का उपयोग डेवलपर द्वारा किया जाना चाहिए। प्रथम

  1. जावास्क्रिप्ट में एक सरणी का उपयोग करके गतिशील रूप से रेडियो बटन कैसे बनाएं?

    एक सरणी का उपयोग करके गतिशील रूप से रेडियो बटन बनाने के लिए, createElement() औरappendChild() की अवधारणा का उपयोग करें। उदाहरण निम्नलिखित कोड है - <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content=&qu