convert int[][] to int**

Dicebot public at dicebot.lv
Thu Feb 20 09:02:09 PST 2014


On Thursday, 20 February 2014 at 16:55:51 UTC, Andrea Fontana 
wrote:
> On Thursday, 20 February 2014 at 16:47:43 UTC, bearophile wrote:
>> Andrea Fontana:
>>
>>> I have a C api that need a int** params that represent a 
>>> int[][]. How can I convert from d to c to pass it? For simple 
>>> arrays, array.ptr seems to work...
>>
>> One way to do it (untested):
>>
>> int** pp = myDArray.map!(a => a.ptr).array.ptr;
>>
>> Bye,
>> bearophile
>
> Ok, so it seems there's no "built-in" ways...

You can't do it without allocation because memory layout is 
different for int** and int[][] in D - are.ptr in latter points 
to slice struct (pointer+length) as opposed to raw pointer in 
former.


More information about the Digitalmars-d-learn mailing list