在 D 语言中,new 关键字用于在堆上分配内存,并返回一个指向该内存的指针。虽然可以选择使用 delete 关键字来释放内存,但 D 语言运行时会在程序结束时自动释放分配的内存,因此您不需要显式释放内存。

以下是一个简单的示例,演示如何使用 new 分配内存并将其分配给指针变量:

import std.stdio;

void main()
{
    int* ptr = new int;
    *ptr = 10;
    writeln('Value of ptr: ', *ptr);
}

在此示例中,我们使用 new 关键字在堆上分配了一个 int 类型的内存,并将其分配给 ptr 指针变量。然后,我们在 ptr 指针变量中存储了值 10。最后,我们使用 writeln 函数输出 ptr 指针变量中存储的值。

由于 D 语言运行时会自动释放内存,因此在此示例中,我们没有使用 delete 关键字来释放分配的内存。

如果您想验证内存是否分配成功,可以使用 core.memory.isGCObject 函数。此函数返回一个布尔值,指示指定的对象是否为垃圾回收对象。如果返回 true,则表示对象已成功分配内存。

import std.stdio;
import core.memory;

void main()
{
    int* ptr = new int;
    *ptr = 10;
    writeln('Value of ptr: ', *ptr);
    writeln('Is ptr a GC object? ', isGCObject(ptr));
}

在此示例中,我们添加了一个验证,使用 isGCObject 函数检查指针变量 ptr 是否为垃圾回收对象。由于 ptr 指针变量是使用 new 分配的内存,因此此函数返回 true

D 语言 new 关键字内存分配:自动释放与验证

原文地址: https://www.cveoy.top/t/topic/ohks 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录