Inserting into zero-length dynamic array

Steven Schveighoffer schveiguy at gmail.com
Tue Jul 4 19:28:56 UTC 2023


On 7/4/23 3:19 PM, Cecil Ward wrote:
> I have a dynamic array of strings of length zero. When i write to the 
> first element the program crashes, not surprisingly, but what should I 
> be doing?
> 
>   dstring[] arr;
> 
>   arr[0] = "my string"d; // BANG !!

It depends on the semantic requirement.

If the requirement is "ensure that the array length is at least one, and 
then write the first element" then it would be:

```d
if(arr.length < 1) arr.length = 1;
arr[0] = "my string"; // btw, literals will auto-convert to the right width
```

If the requirement is to add another element to a known zero-length 
array, then it would just be:

```d
arr ~= "my string";
```

-Steve


More information about the Digitalmars-d-learn mailing list