string to char* in betterC
9il
ilyayaroshenko at gmail.com
Wed Mar 11 16:18:18 UTC 2020
On Wednesday, 11 March 2020 at 16:10:48 UTC, 9il wrote:
> On Wednesday, 11 March 2020 at 16:07:06 UTC, Abby wrote:
>> What is the proper way to get char* from string which is used
>> in c functions? toStringz does returns:
>>
>> /usr/include/dmd/phobos/std/array.d(965,49): Error: TypeInfo
>> cannot be used with -betterC
>>
>> and I think string.ptr is not safe because it's not zero
>> termined. So what should I do? realloc each string with /0?
>>
>> Thank you for your help
3. You can use mir-algorithm for simplicity and speed
----
/+dub.sdl:
dependency "mir-algorithm" version="~>3.7.18"
+/
import mir.format;
import core.stdc.stdio;
void main() {
printf("some_string %s", (stringBuf() << "other_string" <<
"\0" << getData).ptr);
}
----
stringBuf() uses stack if the inner string fits into it. So, It
is a mutch master than malloc/free. However, in this case C
function should return pointer ownership to the caller.
More information about the Digitalmars-d-learn
mailing list