夕口技術錄

專業上的小常識,備而用之~

Monthly Archives: 五月 2010

[C] – malloc 函數

malloc()是C語言裡宣告動態記憶體的函式.
也就是說malloc()是C語言裡像電腦要/借記憶體的函式.
此函數有一個引數, 就是告訴電腦你要/借多少個記憶體.
比如說

malloc(sizeof(char))就是告訴電腦你要/借1個byte的記憶體
malloc(sizeof(int))就是告訴電腦你要/借4個byte的記憶體
malloc(sizeof(int) * 10)就是告訴電腦你要/借4*10=40個byte的記憶體

malloc()會回傳兩種答案.
1. NULL, 這表示電腦已經沒記憶體可以借給你了.
2. 不是NULL. 這表示電腦有記憶體可以借你. 回傳的是電腦借給你的記憶體的住址.

因malloc()不知你要如何用借來的記憶體, 所以malloc()的回傳型態是void *.
一個void的指標. 所以當你呼叫malloc()時要把malloc()回傳值改為你要的型態.

例:
//用malloc()像電腦借4*20=80個記憶體. 之後把這80個記憶體改成(int *).
//所以換句話說是像電腦借一個有20個int的陣列.
int *a;
a = (int *) malloc(sizeof(int) * 20);

//用malloc()像電腦借1*11=11個記憶體. 之後把這11個記憶體改成(char *).
//所以換句話說是像電腦借一個有11個char的陣列. 有11個字元的字串
char *a;
a = (int *) malloc(sizeof(char) * 11);

[C] – malloc 函數

[Linux][SSH] – 登錄慢(卡很久)問題

# vi /etc/ssh/sshd_config
UseDNS no
GSSAPIAuthentication no

有時會在某主機發現 ssh 登錄系統慢

原因在於 ssh-server端設置了UseDNS yes GSSAPIAuthentication yes (認證),當DNS(/etc/resolv.conf)有問題時,導致登錄過程緩慢。