c++ - VC2010中使用Char数组显示字符串运行时报错

标签 c++ visual-c++

我正在“运行”这段代码:

#include <iostream>

int main()
{

    char name[5] = {'J', 'a', 'k', 'e', '\0'};

    std::cout << name[5];

    std::cin.get();
    std::cin.get();

    return 0;
}

引用我的C++ Primer,这段代码是正确的。我收到的运行时错误是这样的(直接从对话框中复制并粘贴):

“运行时检查失败 #3 - 正在使用变量‘name’但未初始化。”

我明白这个错误,但我不知道如何修复它。我做了 Initialize 变量。我想知道如何解决这个问题,或者如果我确实犯了错误,我该如何解决。谢谢。

最佳答案

Name是 5 元素数组,因此,最后一个元素是 name[4] .

您正在尝试打印不存在的“第六”元素:std::cout << name[5];

如果您想打印整个内容,那么 std::cout<<name;会很好地工作,因为你正确地 null 终止了你的数组。

如果要打印第五个元素('\0'),则std::cout<<name[4] .

关于c++ - VC2010中使用Char数组显示字符串运行时报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20484098/

相关文章:

c++ - 从另一个 Nan::ObjectWrap 返回一个 Nan::ObjectWrap

c++ - x86 上两个 128 位整数的高效乘法/除法(无 64 位)

C++ 方法调用模板函数无法调用重载方法

visual-c++ - COM 和 DCOM 之间的区别?

windows - 有没有办法找到要在 GetProcAddress 中使用的 C++ 损坏名称?

c++ - 使用 dlopen 加载派生多态类

c++ - 你能不用 goto 重写这段代码吗

c++ - 否定一个数字的最快方法

visual-c++ - 如何将汇编标记放入 C++ 代码 (x64)

C++ 11 正则表达式堆栈溢出/VS2012