gpt4 book ai didi

c++ - memcpy 出错,长度不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:17 25 4
gpt4 key购买 nike

我正在将网关中的数据(包含字符串 Oct/10/12)复制到 dest_data 但是 dest_data 得到的字符比来源:

unsigned_8   *dest_data
int_16 len;

len = (int_16)strlen( Gateway ); // len got 9 correctly
(void)memcpy( dest_data, GatewayApplicationRlsDate, len );

dest_data 的最终输出是"Oct/10/1210.1.3"

我是否必须在复制之前清理 dest_data

最佳答案

您复制字符串内容,但不复制终止空字符。给 len 加一,你应该没问题。但正确的解决方案是使用 strcpy(),它会自动复制结尾的空字符。

另外,考虑为dest_data分配内存(malloc((len + 1) * sizeof(*dest_data));)

unsigned_8   *dest_data;
int_16 len;

len = (int_16)strlen( Gateway ) + 1;
dest_data = malloc(len * sizeof(*dest_data));
(void)strcpy( dest_data, GatewayApplicationRlsDate );

关于c++ - memcpy 出错,长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141965/

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