On 4/15/15 8:35 AM, CraigDillabaugh wrote:
On Wednesday, 15 April 2015 at 11:18:03 UTC, Steven Schveighoffer wrote:
immutable blocksize = GByte.sizeof * x_block_size * y_block_size;
auto buffer = malloc(blocksize)[0..blocksize];
Also, you don't need to cast pointers to void *. Should be able to do:
GDALReadBlock(AGDALRasterBandHInstance, xblock, yblock, buffer.ptr);
Thanks for the pointers (no pun intended!)
Just out of curiosity, what is the type of 'buffer'? 'malloc' returns a
void* but using the .ptr suggests 'buffer' is an array. Is the return
of malloc automatically converted to an array?
malloc returns void *, but I am applying the slice operator which turns
a pointer into a slice. I'll split it up:
auto bufptr = malloc(blocksize); // typeof(bufptr) = void *
auto buffer = bufptr[0..blocksize]; // typeof(buffer) = void[]
-Steve