六十三吖 2016-12-02 10:24 采纳率: 0%
浏览 1918

c语言strncpy函数的使用

在visual stdio2013中不能使用strncpy函数,说是应该用strcpy_s

 strncpy_s(&q_StrGameBack[q_arrSanke[i][0]][q_arrSanke[i][1]],&m, 2);

可是我调用的时候总是提示调用参数太少

查了下函数原型是

 strncpy_s(_Out_writes_z_(_SizeInBytes) char * _Dst, _In_ rsize_t _SizeInBytes, _In_reads_or_z_(_MaxCount) const char * _Src, _In_ rsize_t _MaxCount);

我应该是缺少了_In_ rsize_t _SizeInBytes这个参数,可是这个参数该怎么填啊
求哪位大神给我解答下,谢谢了

  • 写回答

1条回答 默认 最新

  • 小胡子V 2016-12-02 12:47
    关注

    strncpy_s比strncpy更安全

    errno_t strncpy_s(
    char *strDest,
    size_t numberOfElements,
    const char *strSource,
    size_t count
    );
    参数就不做介绍了,容易看懂。下面就几种情况介绍。主要涉及目标内存大小numberOfElements、拷贝的大小count以及源字符串的大小src_len.

    1. numberOfElements > count,src_len>count时,复制count到目标区域;

    2.numberOfElement>count,src_len<count时,复制src_len到目标区域;

    1. numberOfElement<=count,src_len和count的关系任意时,抛出异常。

    其中count不确定时,可以用_TRUNCATE代替,即最大可能的复制到目标区域,这时长度取决于1,2。即numberOfElements和src_len中较大的。

    _TRUNCATE实际就是个宏定义,int-1.一个很大的数目。

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大