运行时在D中分配多维数组

发布于 2024-11-18 08:22:17 字数 277 浏览 1 评论 0原文

是否可以在 D 中分配二维数组(及更高维)?

以下内容不起作用:

void create2DArray(uint w, uint h) {
    double[][] histogram = new double[w][h];
}

但是,以下内容可以正常编译:

void create1DArray(uint w) {
    double[] histogram = new double[w];
}

Is it possible to allocate 2-dimensional arrays (and higher) in D?

The following does not work:

void create2DArray(uint w, uint h) {
    double[][] histogram = new double[w][h];
}

however, the following compiles fine:

void create1DArray(uint w) {
    double[] histogram = new double[w];
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丑丑阿 2024-11-25 08:22:17

您需要使用如下所示的构造函数语法:

void create2DArray(uint w, uint h) {
    double[][] histogram = new double[][](w, h);
}

效果很好,至少在 D2 中是这样。

You need to use constructor syntax like this:

void create2DArray(uint w, uint h) {
    double[][] histogram = new double[][](w, h);
}

That works fine, at least in D2.

南风起 2024-11-25 08:22:17

这是一个提案 http://www.tcm。 phy.cam.ac.uk/~nn245/documents/D-multidimarray.html

看起来您必须使用循环为其自身分配每一行。

Here is a proposal http://www.tcm.phy.cam.ac.uk/~nn245/documents/D-multidimarray.html

Looks like you have to allocate each row for itself with a loop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文