|
本帖最后由 ydz0515 于 2009-6-8 17:04 編輯
俺有個問題:看王瑋寫的《感悟設計》目錄,只對“17、由數組非法操作想到的”一章有點翻閱興趣,于是跑了一趟新華書店。結果大失所望:如果說有意造出那么一個錯誤程序print_string(。;作為講解概念范例,那還可以理解。但是作者說這是他在實踐中自己寫的。唉,.....
俺頭腦中的概念:對于const 字符串的輸出printf( )或者puts( ),根本不需要分配使用靜態數組或者占用寶貴RAM。
再說,如果實踐中要求輸出更長的字符串,難道作者就只能定義
char string[100];?! ——根本不需要!
作者可是儼然以教書先生在這寫書給我們講課來的。
請教諸位,這段程序應該怎么寫?讓咱讀者教教EDN的高手老師。
void print_string(int str_ID)
{
char string[10]; //修正后 char string[50];
switch(str_ID)
{
case 0: strcpy(string,“高壓危險”);
break;
case 1: strcpy(string,“安全電壓”);
break;
case 2: strcpy(string,“請切換到備用電池,然后給主電池充電”); //這里
// 在原本定義 char string[10]; 時越界,
// 修改為 char string[50]; 后問題解決。
break;
}
printf(string);
} |
|