Ads 468x60px

##EasyReadMore##

04 6月, 2012

[c 語言] strcpy 跟 strncpy 的使用時機

strcpy 跟 strncpy 看起來似乎沒什麼差別
雖然 strcpy 不用給予size大小很方便
但卻會造成一些無法預料的結果
例如我們現在用的機器 URL 網址長度限制最高到 512
當初是因為老機器有硬體限制
所以當要下載youtube 影片時
youtube 的播放網址會超過512的字數
會造成當要播放時會有記憶體錯誤的情況
而剛好複製網址的時候會超出512的狀況
例如:
char url[512];
strcpy(url,txbuf);
而 txbuf 裡的東西超過512的大小

因此最好是用strncpy來給予複製的大小
才不會不明原因的記憶體錯誤發生
例如:
strncpy(url,txbuf,sizeof(url));

除非確定複製的值永遠不會大於你設定的大小

0 意見:

張貼留言

 
Blogger Templates