Re: [討論] 請問這個程式碼
看了這個程式
我做了一點小小修改
還麻煩大家給個建議
void main(){
char *pass;
int i=0,LEN=8;
pass=(char *)malloc(sizeof(char)*LEN);
printf("Enter password:");
while(*(pass+i)!='\r'&& i!=LEN ){
*(pass+i)=getch();
switch (*(pass+i)){
case '\b':
if(i>0){
printf("\b \b");
i--;
}
break;
case '\r':
LEN=i;
break;
default:
printf("*");
i++;
break;
}
}
printf("\n");
for(i=0;i<=LEN;i++)
printf(" %c",*(pass+i));
printf("\n");
system("pause");
}
我是改用指標去寫,這樣可以節省記憶體配置
LEN是決定最大長度
本來是#define LEN 8啦
不過設想到有可能USER沒輸入到這麼長就按ENTER了
下面又要依序印出來
所以就改成全域變數
如果輸入滿8個
也會自動跳出
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.76.53
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 01:23)
→
04/16 02:08, , 1F
04/16 02:08, 1F
我要表示的是,如果用指標來配置的話,那這樣就是程式裡面需要用到才用
而不會說一開始就宣告,這樣這塊記憶體其他程式就沒辦法用了
→
04/16 02:20, , 2F
04/16 02:20, 2F
因為我要用到程式結束,所以沒有free也不要緊,不過最好還是要記得啦!!
→
04/16 02:53, , 3F
04/16 02:53, 3F
哈哈,這真的沒注意到
→
04/16 02:55, , 4F
04/16 02:55, 4F
???
→
04/16 15:11, , 5F
04/16 15:11, 5F
DEV-C阿!!C都不熟了,怎麼學C++呢?
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 15:21)
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 15:22)
→
04/16 15:27, , 6F
04/16 15:27, 6F
→
04/16 15:27, , 7F
04/16 15:27, 7F
→
04/16 15:30, , 8F
04/16 15:30, 8F
是嗎?!我是用Dev-C 4.9.9.2耶,我知道char佔1bytes阿!!不過還是要配置阿!!!
我的意思是,我是要一直用到程式結束,所以程式執行完就會free了
最後我有講阿!!還是要記得加才對!!
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 15:39)
→
04/16 15:58, , 9F
04/16 15:58, 9F
→
04/16 15:59, , 10F
04/16 15:59, 10F
→
04/16 15:59, , 11F
04/16 15:59, 11F
→
04/16 16:00, , 12F
04/16 16:00, 12F
→
04/16 16:02, , 13F
04/16 16:02, 13F
我會去查的,感謝loveme00835的指教~~
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 16:22)
推
04/16 19:54, , 14F
04/16 19:54, 14F
那要用什麼?VS2008? VS2010? 這兩個要編譯的時候都要開一個專案,定義也得比較嚴謹
我們上課是用DEV-C,每次都還要副檔名一直轉換,其實頗麻煩的
有點感嘆怎麼學都趕不上工具更新
我一開始學是學Turbo C咧,←夠復古吧!! 那時候還是VS2005,我VS2005還沒摸熟
2008出來了,2008也還沒摸熟,2010出來了= =.......
※ 編輯: jacky1989 來自: 123.192.76.53 (04/16 20:31)
推
04/16 21:12, , 15F
04/16 21:12, 15F
推
04/16 21:15, , 16F
04/16 21:15, 16F
討論串 (同標題文章)