gpt4 book ai didi

ios - 我可以在 iOS 上将 memcpy_s 与 ObjC 一起使用吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:20 25 4
gpt4 key购买 nike

在 iOS 中是否有任何 memcpy 的替代品?据我所知,memcpy 并不“安全”,建议的替代方案是“memcpy_s”

但是,在将 memcpy 替换为 memcpy_s 后,由于“架构 armv7 的 undefined symbol :”问题,代码无法编译。

我该如何解决这个问题?如何设置项目设置?任何帮助将不胜感激。

AsyncSocket.m 中的一些代码:

- (CFIndex)readIntoBuffer:(UInt8 *)buffer maxLength:(CFIndex)length
{
if([_partialReadBuffer length] > 0)
{
// Determine the maximum amount of data to read
CFIndex bytesToRead = MIN(length, [_partialReadBuffer length]);

// Copy the bytes from the buffer
memcpy(buffer, [_partialReadBuffer bytes], bytesToRead);

// Remove the copied bytes from the buffer
[_partialReadBuffer replaceBytesInRange:NSMakeRange(0, bytesToRead) withBytes:NULL length:0];

return bytesToRead;
}
else
{
return CFReadStreamRead(_theReadStream, buffer, length);
}
}

最佳答案

as I know, memcpy is not 'safe'

事实并非如此。对比一些真正不安全的stdlib函数,只有不能使用才是“不安全”。 memcpy() 将缓冲区长度作为其第三个参数,因此您不会冒缓冲区溢出的风险;您还可以检查源指针和目标指针,以避免取消引用 NULL 等。

memcpy_s() 是 Microsoft 的扩展,因此,它只能在 Windows 上使用(幸运的是)。如果您需要 memcpy(),请使用它,并且不要尝试用特定于供应商的东西替换标准函数(尤其是当该供应商是 Microsoft 时)。

关于ios - 我可以在 iOS 上将 memcpy_s 与 ObjC 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com