pre_coder 2023-05-08 19:35 采纳率: 100%
浏览 13
已结题

字符数组不完全初始化

兄弟姐妹帮忙看看捏
我写了一个简单的函数模板,问题是当我用一个长度为9的字符串去初始化长度为15的字符数组,在输出字符数组的内容,运行第一次是正确的,多次运行后就出错

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
template <class t>
void outputArray(const t* array, int count) {
    for (int i = 0; i < count; i++) {
        cout << array[i] ;
        cout << endl;
    }
}

int main()
{
    const int a_count = 8, b_count = 5, c_count = 15;
    int a[a_count] = { 1,2,3,4,5,6,7,8 };
    double b[b_count] = { 1.1,2.2,3.3,4.4,5.5 };
    char c[c_count] = "welcome!";//造成运行错误

    cout << "a array contains:" << endl;
    outputArray(a, a_count);
    cout << "b array contains:" << endl;
    outputArray(b, b_count); 
    cout << "c array contains:" << endl;
    outputArray(c, c_count);
    return 0;
}


正确运行结果:

img

错误运行结果:

img

  • 写回答

1条回答 默认 最新

  • 创意程序员 2023-05-08 19:46
    关注

    长度不够,9后面的没初始化,也就是内存里面的数据没清除,可能是别的内容。字符串以'\0'结束,使用时可以检查遇到这个符号就提前结束输出,后面的是无效数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月8日

悬赏问题

  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集
  • ¥15 靶向捕获探针方法/参考文献