2013-04-18 59 views

回答

1

strcpy()函數複製包含終止'\ 0'字符的字符串,因此您需要+1。

6

是的,你需要+1 - strlen返回字符串長度;存儲一個字符串,您需要存儲它的長度以及NULL終止符的額外位置。

這就是說,在這個具體的例子中(我確信這只是一個例子),你可以使用strdup

1

是的,當然你必須考慮'\ 0'。所以:

strlen(str1)+1U 

是你想要的。在這種情況下考慮strdup

+0

'strdup'廣泛使用,但不是由C標準定義的。 –

+0

'strdup'很容易編寫自己,雖然如果你沒有它。如果這是你的代碼中的一個常見操作,我會爲它寫一個函數,而不是每次重複相同的邏輯。 –

+0

1U是什麼意思? – sicklybeans

0

而不是使用malloc()您可以使用calloc()它會自動爲您終止。