有多少内存使用一个包含一个高索引元素的数组?

How much memory uses an array with one high-index element?

此代码 运行 会占用大约 4_000_000 字节的内存吗?

my uint32 @array;
@array[1_000_000] = 1;

如果您分配元素 1_000_000 并且每个元素是 4 个字节,那将是 4_000_004 字节的内存。所以严格来说,答案是 "No" :-)

但不那么迂腐:本机数组保证在内存中连续布局,因此这样的分配至少会分配一个 4 x 1_000_001 = 4_000_004 字节的内存块。正如 Christoph 在他的评论中所说,如果你想确保它是它将永远分配的全部,你需要使它成为一个成形的本机数组。您还将获得上限检查作为奖励。