extern (C) function call with const char * type will sometimes generate seg fault or core dump.
Mike Parker via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Oct 16 00:55:37 PDT 2014
On 10/16/2014 4:54 PM, Mike Parker wrote:
> On 10/16/2014 12:18 PM, dysmondad wrote:
>> Since I've added this call, my program will sometimes but not always
>> either generate a core dump or a seg fault. It seems that the issue is
>> with the const char * parameter.
>>
>> I don't have a good grasp of the difference between the way D and C work
>> for char * types.
>
> Strings in C are arrays of chars ending with the nul terminator. Strings
> in D are not required to be nul terminated. String literals in D *are*
> nul terminated. When passing a string to a C function that takes const
> char*, use toStringz as Ali showed in his post.
>
>
Forgot to mention -- toStringz in std.string will add the nul terminator
if it is not already there.
---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com
More information about the Digitalmars-d-learn
mailing list