mac_05185 2022-07-07 11:40 采纳率: 67.1%
浏览 329
已结题

vs2022编译运行后报乱码如何解决?

这段C代码编译运行后为什么会有乱码出现?

img

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>

typedef struct
{
    uint8_t datetime[6];
    uint32_t len;
    uint8_t* data;
}DATA_T;

DATA_T data11;

void supp_data_save()
{
    size_t Return;
    int i;
    uint8_t data1[64] = { 0 };
    uint8_t* buf;

    memset(&data11, 0, sizeof(data11));

    buf = (uint8_t*)malloc(10);
    memcpy(data11.datetime, "202207\0", 6);
    data11.len = 1;
    memcpy(buf, "1233211231\0", 10);
    data11.data = buf;
    printf("data11: %c\r\n", data11.data[0]);
    printf("data11: %c\r\n", data11.data[1]);
    printf("data11: %c\r\n", data11.data[2]);
    printf("==============================\n");

    for (i = 0; i < 10; i++)
    {
        printf("%c", data11.data[i]);
    }
    printf("\r\n00\r\n");
    printf("==============================\n");
    int len1 = (sizeof(data11) + 10 - 1);
    memcpy(data1, &data11, len1);
    for (i = 0; i < 10; i++)
    {
        printf("%c", data1[i]);
    }
    printf("\r\n");
    printf("==============================\n");
    printf("data111: %c\r\n", data11.data[10]);
    printf("data111: %c\r\n", data11.data[11]);
    printf("data111: %c\r\n", data11.data[12]);
    printf("\r\n000\r\n");
}

int main()
{
    supp_data_save();
    return 0;
}
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-07-07 12:35
    关注

    buf = (uint8_t*)malloc(10); //10字节的空间
    memcpy(data11.datetime, "202207\0", 6);//datetime[] 这里7个字节,不是6个字节
    字符数组越界操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月7日
  • 已采纳回答 7月7日
  • 创建了问题 7月7日

悬赏问题

  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。
  • ¥15 GitHubssh虚拟机连接不上
  • ¥15 装完kali之后下载Google输入法 重启电脑后出现以下状况 且退不出去 桌面消失 反复重启没用
  • ¥15 ESP-IDP-BLE配网连接wifi
  • ¥15 ue2.6.12版本用的若以,安装gojs,引入import * as go from 'gojs';报错
  • ¥15 服务器上的网站安装php5.6版本
  • ¥15 ModuleNotFoundError: No module named 'torch.utils._import_utils' 是缺少什么
  • ¥15 请大咖一起探索iptv 直播源的hls通过反向代理解密
  • ¥100 寻找技术员 云闪付tn转h5输入卡号付款的链接 重酬!