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

C में 2D ऐरे को डायनामिकली कैसे आवंटित करें?


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

एक प्रोग्राम जो इसे प्रदर्शित करता है वह इस प्रकार है।

उदाहरण

#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-D ऐरे arr को malloc का उपयोग करके डायनामिकली आवंटित किया गया है। फिर 2-D ऐरे को नेस्टेड फॉर लूप और पॉइंटर अंकगणित का उपयोग करके इनिशियलाइज़ किया गया है। वह कोड स्निपेट जो इसे दिखाता है वह इस प्रकार है।

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-D ऐरे के मान प्रदर्शित किए जाते हैं। अंत में डायनामिकली आवंटित मेमोरी को free का उपयोग करके मुक्त किया जाता है। वह कोड स्निपेट जो इसे दिखाता है वह इस प्रकार है।

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. - JavaScript सरणी को सीरियलाइज़ कैसे करें?

    serializeArray() मेथड सभी फॉर्म और फॉर्म एलिमेंट्स को .serialize() मेथड की तरह सीरियलाइज़ करता है लेकिन आपके काम के लिए JSON डेटा संरचना लौटाता है। मान लें कि PHP फ़ाइल serialize.php में निम्न सामग्री है: <?php if($_REQUEST[name]) { $name = $_REQUEST[name]; echo Welcome . $name; $a

  1. - JavaScript में मेमोरी कैसे आवंटित करें?

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

  1. JavaScript में सरणी का उपयोग करके रेडियो बटन डायनामिकली बनाना JavaScript में सरणी का उपयोग करके रेडियो बटन डायनामिकली बनाना

    सरणी का उपयोग करके डायनामिकली रेडियो बटन बनाने के लिए, createElement() और appendChild() की अवधारणा का उपयोग करें।उदाहरणकोड निम्न है:<!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>