Shortest way to allocate an array and initialize it with a specific value.

Daniel Kozák via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 11 01:33:31 PDT 2015


On Wed, 10 Jun 2015 20:22:17 +0000
Adel Mamin via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com>
wrote:

> ubyte[5] a = 0xAA; // Fine. Five 0xAA bytes.
> auto a2 = new ubyte[5]; // Fine. Five 0 bytes.
> Now, let's say, I want to allocate an array of a size, derived at 
> run time, and initialize it to some non-zero value at the same 
> time. What would be the shortest way of doing it?

import std.stdio;

struct Ubyte(ubyte defval) {
    ubyte v = defval;
    alias v this;
}

void main() {
	auto a2 = new Ubyte!(0xAA)[5];
	writeln(a2);
}


More information about the Digitalmars-d-learn mailing list