Nim has implicit initialization (
[http://nim-lang.org/docs/manual.html#statements-and-expressions-var-statement](http://forum.nim-lang.org///nim-lang.org/docs/manual.html#statements-and-expressions-var-statement)
) so:
var x : array[10,char]
echo repr x # ['\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
Anyway, `alloc0` and the like return pointers, so you need to cast to `ptr
array[]` :
var inputs = cast[ptr array[10,int]](alloc0(sizeof(int) * 10))
inputs[0] = 1
inputs[1] = 2
inputs[2] = 3
for i in 0..9:
echo inputs[i]
echo repr inputs
var test = alloc0(10)
zeroMem(test, 10)
echo repr cast[ptr array[10,char]](test)
Produces
1
2
3
0
0
0
0
0
0
0
ref 000000000018F050 --> [1, 2, 3, 0, 0, 0, 0, 0, 0, 0]
ref 0000000000191050 --> ['\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
'\0', '\0']
Or just use create:
var ar = create array[10,char]
echo repr ar # ref 000000000092F050 --> ['\0', '\0', '\0', '\0', '\0',
'\0', '\0', '\0', '\0', '\0']
Note that I don't think nim's garbage collector keeps track of pointers you get
from `alloc` etc, so you may have to deallocate them yourself to avoid memory
leaks