- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Swift 3.0 中使用 strlcpy,但不断收到错误消息“无法将类型‘UnsafeMutablePointer<_>’的值转换为预期的参数类型‘UnsafeMutablePointer!’”
这是我的代码
func login(portal: String, username: String, password: String) {
var loginEvent = VidyoClientInEventLogIn()
let portalCArray = UnsafeMutablePointer<Int8>(mutating: (portal as NSString).utf8String!)
withUnsafeMutablePointer(to: &loginEvent.portalUri) {
strlcpy($0, portalCArray, MemoryLayout.size(ofValue: $0))
}
}
VidyoClientInEventLogIn 在哪里:
typedef struct VidyoClientInEventLogIn_
{
/*! Portal URI, i.e. "https://example.test.com" */
char portalUri[URI_LEN];
} VidyoClientInEventLogIn;
最佳答案
C 数组作为元组导入到 Swift 中。但是内存布局C 结构保留在 Swift 中,因此您可以使用地址第一个元组元素的 loginEvent.portalUri.0
(类型为 CChar
又名 Int8
)作为目标地址。
你也可以传递一个 Swift String
直接作为函数的参数服用UnsafePointer<CChar>
参数,临时 C 字符串表示是自动创建的。
这将事情简化为:
func login(portal: String, username: String, password: String) {
var loginEvent = VidyoClientInEventLogIn()
strlcpy(&loginEvent.portalUri.0, portal, MemoryLayout.size(ofValue: loginEvent.portalUri))
}
关于c - 在 Swift 中使用 C - strlcpy - 无法转换类型 'UnsafeMutablePointer<_>' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39656590/
我是 C 编程和 Makefile 的新手。 我的 c 代码中有一个函数,它使用 strlcpy 来复制字符串。 我不允许在我的代码中使用 #include 所以我已经包含了 #include 。 但
我知道,在从源字符数组复制到目标字符数组(我们希望目标以 null 结尾)时,strlcpy 比 strncpy 更安全,下面的包装可以吗? size_t strlcpy(char *dst, con
我知道 strcpy 在处理缓冲区时不安全,但是在我的代码中我有这个 static char buf[HUGE_BUFFER_SIZE + 1]; char servername[200]; i
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
海湾合作委员会 4.4.4 c89 我的程序做了很多字符串处理。我不想使用 strncpy,因为它不会终止。而且我不能使用 strlcpy,因为它不可移植。 几个问题。我怎样才能让我的功能适应它的步伐
strlcpy 中的“l”代表什么?我敢肯定,在询问之后这将是非常明显的,但我似乎无法在任何地方挖掘出可靠的答案。 最佳答案 strlcpy 由 Todd C. Miller 和 Theo de Ra
当我想将src_str 复制到dst_arr 时应该使用什么,为什么? char dst_arr[10]; char *src_str = "hello"; PS:在阅读了很多关于好或坏的文章后,我的
我一直在构建一些基本的 C 函数,但我仍然没有太多经验。 编码时 strlcpy 功能我不断收到 段错误(核心转储)错误。认为它可能与 NUL 终止字符串有关,但我在运行时不断收到错误消息。 任何帮助
我正在尝试编译最初为 FreeBSD 编写的源代码从 strlcpy isn't included in the linux GlibC ,我现在停在这个阶段。 GCC 建议我可以使用 strncpy
我知道 strlcpy 和 strlcat 被设计为 strncpy 和 strncat 的安全替代品。然而,有些人仍然认为他们是insecure, and simply cause a differ
我最近一直在努力学习 C,以便更好地理解(相对)低级编程,因为我通常使用 Python、PHP、Swift、Java、Javascript 等来完成我的大部分工作。我想我明白了指针的概念以及如何分配/
有人告诉我要使用 strlcpy 函数而不是这样的 strcpy #include #include void main() { char var1[6] = "stuff"; cha
虽然 Rust 提供了 str.as_bytes,但我希望将一个字符串复制到一个固定大小的缓冲区中,其中只有完整的 unicode-scalar-values 被复制到缓冲区中,而不是被截断一个写在最
我没有 OS X 开发环境。我没有 OS X 头文件。我不得不猜测我的一些图书馆电话。此时,我想使用的东西之一是 strlcpy()。 strlcpy() 是 OS X 上 libc 的一部分吗? 如
我不明白为什么我们必须为 strlcat 和 strlcpy 返回一个 unsigned int,为什么我们需要那个?这不是该功能的目标。 感谢您的回复 最佳答案 这些函数的目的是(以某种方式)移动字
我正在尝试在 Swift 3.0 中使用 strlcpy,但不断收到错误消息“无法将类型‘UnsafeMutablePointer’的值转换为预期的参数类型‘UnsafeMutablePointer!
我是一名优秀的程序员,十分优秀!