खोज…


वाक्य - विन्यास

  • & <चर> - संदर्भ द्वारा पहुंच (= चर के डेटा को सूचक मिलता है)
  • * <चर> - डिफरेंस ऑपरेटर (= एक पॉइंटर से डेटा ऑब्जेक्ट प्राप्त करता है)
  • <प्रकार> * - डेटा प्रकार जो इंगित करता है <टाइप> (जैसे `इंट *)

संकेत

डी एक सिस्टम प्रोग्रामिंग भाषा है और इस प्रकार आप अपनी मेमोरी को मैन्युअल रूप से प्रबंधित और गड़बड़ कर सकते हैं। फिर भी, D अप्रयुक्त स्मृति को मुक्त करने के लिए प्रति डिफ़ॉल्ट एक कचरा संग्रहकर्ता का उपयोग करता है।

D, P की तरह सूचक प्रकार T प्रदान करता है:

void main()
{
    int a;
    int* b = &a; // b contains address of a
    auto c = &a; // c is int* and contains address of a

    import std.stdio : writeln;
    writeln("a ", a);
    writeln("b ", b);
    writeln("c ", c);
}

ढेर पर आवंटित

हीप पर एक नया मेमोरी ब्लॉक new अभिव्यक्ति का उपयोग करके आवंटित किया गया है, जो प्रबंधित मेमोरी को एक पॉइंटर लौटाता है:

void main()
{
    int* a = new int;
    *a = 42; // dereferencing
    import std.stdio : writeln;
    writeln("a: ", *a);
}

@ कैफे डी

जैसे ही कार्यक्रम में किसी भी चर के माध्यम से संदर्भित नहीं किया गया मेमोरी द्वारा कचरा किया जाता है, कचरा कलेक्टर अपनी मेमोरी को खाली कर देगा।

D @safe अंकगणित को भी अनुमति देता है, सिवाय उस कोड के जो @safe के रूप में चिह्नित है।

void safeFun() @safe
{
    writeln("Hello World");
    // allocating memory with the GC is safe too
    int* p = new int;
}

void unsafeFun()
{
    int* p = new int;
    int* fiddling = p + 5;
}

void main()
{
    safeFun();
    unsafeFun();
}

सेफड के बारे में अधिक जानकारी के लिए डी डिजाइन टीम का लेख देखें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow