Sorry if it has been discussed before but with the remarks below, wouldn't it be better not to use arrays in the first example but just plain pointers? It even looks like it is suffering from the discussed problem, but does not because the malloc is not using GC.BlkAttr.APPENDABLE.