冰镇Orange汽水 2023-08-09 21:58 采纳率: 90%
浏览 8
已结题

为什么字符数组和动态数组,分别输出,动态数组是乱码?


    char* buffer = new char[13]{};
    //char buffer[13];
    if (recv(clientSocket, buffer, sizeof(buffer), 0) == SOCKET_ERROR)
    {
        std::cout << "接受服务器信息失败!" << std::endl;
    }
    else
    {
        std::cout << buffer << std::endl;
    }

网络协议编程,接收来自服务器发送的"hello world"信息时
这里为什么char* buffer = new char[13]{};输出的buffer是乱码
而char buffer[13];输出的buffer不是?

  • 写回答

3条回答 默认 最新

  • [PE]经典八炮 2023-08-09 22:03
    关注

    你这样得到的大小是指针的大小(一般是8)而不是13,你把sizeof(buffer)改成13试试

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

报告相同问题?

问题事件

  • 系统已结题 8月18日
  • 已采纳回答 8月10日
  • 创建了问题 8月9日