2009年9月21日 星期一

C/C++筆記-strcpy和strcat超出字串範圍的風險

strcpy和strcat使用時會有超出字串範圍的風險
解法1:可用assert函式來避免

解法2:strncpy(name,"Oualline",sizeof(name)-1);
           最後一個會自動補'\0'

解法2:strncat(name,"Oualline",sizeof(name)-strlen(name)-1);
           若空間已滿,則'\0'就不會自動加入,需自行填入,
           多寫一行程式碼 name[sizeof(name)-1]='\0';
           加上此行程式碼若未超出空間會多一個'\0',但不影響

0 意見 :

張貼留言