鍍金池/ 問答/C/ c語言字符數(shù)組溢出不報錯

c語言字符數(shù)組溢出不報錯

#include <stdio.h>
void f(void){
    char a[8];
    char b[8];
    scanf("%s",a);
    scanf("%s",b);
    printf("%s##%s##\n",a,b);
} 
int main(void){
    f();
    return 0;
} 

初學(xué)c語言
代碼如上,我定義了了兩個長度為8的字符數(shù)組。但是當(dāng)我輸入長度超過8的字符時,為什么依然可以正常輸出。
例如我輸入"123123123 123123123",pirntf出來就是"123123123##123123123##",指定的位數(shù)沒有效果。
請前輩指教。

回答
編輯回答
吢涼

因為c語言本身是沒有數(shù)組溢出檢查的,scanf并不知道你定義的數(shù)組是多大,對f函數(shù)來說,只要不超過給它分配的棧大小就不會報錯。

2017年8月6日 19:42