2017-09-02 80 views
0

这里是代码 -为什么这个C++程序正在使用字符数组?

#include<iostream> 
#include<cstring> 
using namespace std; 
int main() 
{ 
    char s[1]; 
    strcpy(s,"BMWabc"); 
    cout<<s; 
    return 0; 
} 

我有尺寸1的阵列,但我复制的这个阵列中的6个字节的字符串。它应该显示错误。但输出是BMWabc。这怎么可能?

回答

0

它只会工作有时。将数据写入未定义的内存时,可能会覆盖其他进程或程序使用的内存。所以有时候会导致其他程序崩溃。

当您安装某些软件时,您是否注意到,整个操作系统都会挂起?

这被称为内存溢出。

当您打印一个字符串时,它将打印到'\ 0'。

相关问题