#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;
}初學c語言代碼如上,我定義了了兩個長度為8的字符數(shù)組。但是當我輸入長度超過8的字符時,為什么依然可以正常輸出。例如我輸入"123123123 123123123",pirntf出來就是"123123123##123123123##",指定的位數(shù)沒有效果。請前輩指教。
1 回答

慕慕森
TA貢獻1856條經(jīng)驗 獲得超17個贊
因為c語言本身是沒有數(shù)組溢出檢查的,scanf并不知道你定義的數(shù)組是多大,對f函數(shù)來說,只要不超過給它分配的棧大小就不會報錯。
- 1 回答
- 0 關注
- 864 瀏覽
添加回答
舉報
0/150
提交
取消