char ***argc problems.
Timon Gehr
timon.gehr at gmx.ch
Sun Aug 12 13:57:33 PDT 2012
On 08/12/2012 10:33 PM, Andrew wrote:
> I'm attempting to create a wrapper for MPI, however, MPI_Init
> wants to read the arguments for main():
>
> MPI_Init(int *argv, char ***argc);
>
> How do I get this last level of pointer reference?
>
> So far, I have:
>
> void main (string[] args)
> {
> auto argarr = new char*[args.length];
> foreach(i, a; args)
> argarr[i] = (a.dup ~ '\0').ptr;
>
> int argc = to!(int)(argarr.length);
> MPI_Init(&argc, argarr.ptr);
> }
>
> Any ideas?
>
> -Andrew
Maybe like this?
import std.algorithm, std.array, std.conv;
void main(string[] args){
auto argarr = args.map!(a=>(a ~ '\0').ptr).array;
int argc = to!(int)(argarr.length);
auto argv = argarr.ptr;
MPI_Init(&argc, &argv);
args = argv[0..argc].map!(to!string).array;
// ...
}
More information about the Digitalmars-d-learn
mailing list