我可以在iOS上使用带ObjC的memcpy_吗?

我可以在iOS上使用带ObjC的memcpy_吗?,ios,objective-c,memcpy,Ios,Objective C,Memcpy,iOS中是否有memcpy的替代品? 据我所知,memcpy并不“安全”,建议的替代方案是“memcpy_'s” 但是,在用memcpy_替换memcpy之后,由于“架构armv7的未定义符号”问题,代码无法编译 我如何解决这个问题?如何设置项目设置?任何帮助都将不胜感激 AsyncSocket.m中的一些代码: - (CFIndex)readIntoBuffer:(UInt8 *)buffer maxLength:(CFIndex)length { if([_partialReadBu

iOS中是否有memcpy的替代品? 据我所知,memcpy并不“安全”,建议的替代方案是“memcpy_'s”

但是,在用memcpy_替换memcpy之后,由于“架构armv7的未定义符号”问题,代码无法编译

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

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);
    }
}
正如我所知,memcpy并不“安全”

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


memcpy_s()
是Microsoft的一个扩展,并且是这样的,它只在Windows上可用(幸运的是)。如果您需要
memcpy()
,请使用它,不要试图用特定于供应商的东西替换标准函数(特别是如果该供应商是Microsoft的话)。

请在使用memcpy的地方发布一些代码。在此处显示一些代码……您可以尝试使用
strcpy()
@user3007735:
strcopy()
复制以NUL结尾的字符串,无法替换复制给定字节数的
memcpy
。我想知道uuu内置uuu memcpy_chk是否安全。