2309d指针地址的分享

原文

import std;
void main()
{
    string variable;
    void * pointeraddress = &variable;
    string[void *] associative;
    associative[pointeraddress] = "someinformation";
    writeln("Hello D ", pointeraddress);
    writeln("Hello D ", associative[pointeraddress]);
}

奖励:在指针地址的关联数组中存储十六进制文本.

import std;
void main()
{
    string[void *] associative;
    //按关联数组中的指针地址`存储十六进制`
    associative[cast(void *)0x7FFCD332CD60] = "someinformation";
     //按变量中的指针地址存储`十六进制文本`.
    //`void*customPointer=cast(void*)0x7FFCD332CD60;`
    writeln("Hello D ", associative[cast(void *)0x7FFCD332CD60]);
    writeln("Hello D ", associative);
}

使用存储的指针地址访问变量出域的演示.

import std;
void outofcontext()
{
    writeln("Hello D ", associative);
    foreach (pointeraddress, information; associative)
    {
        writeln(*cast(string*)pointeraddress);
    }
}
static string[void* ] associative;
void main()
{
    writeln("Hello D ", associative);
    string variable = "hi";
    void* pointeraddress = &variable;
    associative[pointeraddress] = "someinformation";
    outofcontext();
}

你可能感兴趣的:(dlang,d,d)