arnold0613 发表于 2014-2-8 02:18:19

scanf 輸入字串大於數組長度怎不會報錯

#include<stdio.h>
void main()
{
    char string;
    scanf("%s",string);
    printf("%s",string);
}我在教學與書籍 都說要先聲明數組大小
但是我在輸入字串長度要是大於數組長度
都可以打印出來也不會報錯為何

牡丹花下死做鬼 发表于 2014-2-8 03:46:45

scanf("%s",string); 这句话的意思是吧接收到的字符串放到内存中以string里存放的值得那个地址为开始应为是字符串所以就会连续往下了 你输入输出值是用了数组名而已没有对数组进行任何操作 当然不会报错

andalousie 发表于 2014-2-8 08:20:42

我试了试,如果用Visual C++ 6.0的话,如果输入多于5个字符,就会不正常跳出;
如果你用任意版本的gcc(我用的gcc 4.8.2),输入7个字符的字符串,就会出现Process exited with return value 7,这表明在接收7个字符时不正常结束。

石中玉1215 发表于 2014-2-8 12:18:41

嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻

lpppl 发表于 2014-2-8 16:16:43

支持小甲鱼,赞点鱼币回来下载

未闻丶花名 发表于 2014-2-8 20:53:57

路过看看 = =
页: [1]
查看完整版本: scanf 輸入字串大於數組長度怎不會報錯