線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:876
推到 Plurk!
推到 Facebook!

陣列大小問題

尚未結案
syao
初階會員


發表:66
回覆:63
積分:25
註冊:2005-02-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-24 10:15:35 IP:203.70.xxx.xxx 未訂閱
#include 
#include     int main()
{       char name[10];    
    scanf("%s",name);
    printf("%s",name);
    
    system("pause");
    return 0;    }
char name[10]???最大應該只能用到9個字元 . 第十個是'\0' 我輸入出過10個字元還是可以這是為什麼?? 謝謝
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-24 11:00:35 IP:219.68.xxx.xxx 未訂閱
\0是給程式做檢查用的,比如,Length(Name),他會利用\0字串結尾來判斷字串已經結束來計算他的長度,你可以使用第10個元素,但你可能用到別的程式的記憶體而引發錯誤。 你試一下,如果在宣告的地方直接填值,編譯器會幫你檢查。 char name[10]="12345678901" 這樣編譯器將會出現錯誤訊息。 C編譯器對於記憶體的檢查很寬鬆,自己在寫程式必須格外注意,否則未來會引發一些莫名其妙的錯誤。 http://delphi.ktop.com.tw/topic.php?topic_id=73147 發表人 - supman 於 2005/07/24 11:01:34
系統時間:2024-05-18 4:15:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!