Windows下memcpy_s如何在Linux下使用

Windows下代码如下

memcpy_s(pLine->ppBufi, m_ColorLineByte, pIn + nOffset, m_ColorLineByte);

方案 1:使用标准 memcpy + 手动检查(最通用)

// 检查参数有效性

if (pLine->ppBufi == nullptr || pIn == nullptr ||

m_ColorLineByte == 0 || nOffset < 0) {

// 错误处理

return; // 或抛出异常

}

// 执行拷贝

memcpy(pLine->ppBufi, pIn + nOffset, m_ColorLineByte);

方案 2:使用 C11 的 memcpy_s(需编译器支持)

#if STDC_VERSION >= 201112L || STDC_LIB_EXT1

errno_t err = memcpy_s(pLine->ppBufi, m_ColorLineByte,

pIn + nOffset, m_ColorLineByte);

if (err != 0) {

// 错误处理

}

#else

// 回退到方案1

#endif

方案 3:使用 C++ 安全拷贝(推荐)

#include <algorithm> // for std::copy_n

try {

std::copy_n(pIn + nOffset, m_ColorLineByte, pLine->ppBufi);

} catch (...) {

// 异常处理

}

相关推荐
誰能久伴不乏13 分钟前
ibmodbus “Invalid argument“ 错误的排查与修复
c++·qt·modbus
basketball61614 分钟前
Kadane算法 C++实现
java·c++·算法
handler0115 分钟前
【C++】二叉搜索树详解及其模拟实现(代码)
开发语言·c++·算法·c··二叉搜索树·搜索树
Hehuyi_In15 分钟前
从优雅到爆烈 —— Linux全力回收内存的一生
linux·内核·内存·memory·回收
luj_176817 分钟前
残熵算法的稳健防灾逻辑
c语言·开发语言·c++·经验分享·算法
玖釉-18 分钟前
二叉树基础详解:TreeNode、buildTree、deleteTree 与 printTree 的实现原理(C++)
c++·windows·算法
QiLinkOS43 分钟前
从技术到资产的跃迁:企业专利布局的深层逻辑
c语言·数据结构·c++·单片机·嵌入式硬件·算法·开源
杨充43 分钟前
1.1 数据编码设计原理
linux·运维·网络·底层原理·数据编码
fan_music43 分钟前
Linux I/O
linux
Java小白笔记1 小时前
Linux 手动部署 Oracle JDK 17 完全指南
java·linux·oracle