2017-09-02 78 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'。

相關問題