[swift-users] UnsafePointer<Int8> and C-String

Jeremy Pereira jeremy.j.pereira at googlemail.com
Tue Jan 3 08:48:54 CST 2017


> On 3 Jan 2017, at 12:28, Rien via swift-users <swift-users at swift.org> wrote:
> 
> The documentation at https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html shows that it is possible to use String where an UnsafePointer<Int8> is needed.
> API calls to C that need a char* are translated to UnsafePointer<Int8>.
> It follows that we can use a String where a char* is needed.
> 
> However in C a string is not only a char*, it is also null-terminated.
> 
> What I cannot find though is the guarantee that the buffer where the String is converted to an UTF8 sequence is always null-terminated.
> 
> I very much suspect it is, and all my tests did find a null-terminated string.
> 
> Question: Does anybody know for sure that the buffer is always null-terminated? (a link to where I can check this would be most appreciated)
> 

String has a property called utf8CString which is documented as "A contiguously stored null-terminated UTF-8 representation of the string.” I’d use that.


> Regards,
> Rien
> 
> Site: http://balancingrock.nl
> Blog: http://swiftrien.blogspot.com
> Github: http://github.com/Swiftrien
> Project: http://swiftfire.nl
> 
> 
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users



More information about the swift-users mailing list