memset的妙用
? ? ? ? ? ? ?以前在學(xué)校學(xué)習(xí)編程的時(shí)候,都沒有怎么用memset初始化內(nèi)存。但是在實(shí)際開發(fā)中這是必要的,你新申請(qǐng)的某塊內(nèi)存可能有其他軟件使用過的殘留的數(shù)據(jù),所以要清空。一個(gè)字符串?dāng)?shù)組也需要初始化。
#include <stdio.h> #include <string.h> #include <stdlib.h>int main() { char str1[]="abcdefg";char str2[5]={0};strncpy(str2,str1,3);printf("%s\n",str2);return 0; }打印:abc
我們使用strncpy沒有手動(dòng)加'\0',還是正確輸出,初始化也省了一樁事。
#include <stdio.h> #include <string.h> #include <stdlib.h>int main() { char str1[]="abcdefg";char str2[5];strncpy(str2,str1,3);str2[3]=0;printf("%s\n",str2);return 0; }
這樣不初始化需要手動(dòng)補(bǔ)上0或'\0',那我覺得還是初始化一下吧。如果是全局的字符數(shù)組必須要初始化。
總結(jié)
- 上一篇: TCP_DEFER_ACCEPT
- 下一篇: getpeername()函数