例如,假設我想將字符串「str1」複製到新字符串「str2」中:
在C編程中:當爲新字符串mallocing空間時是否需要考慮' 0'(空終止符)
void function(const char* str1){
char* str2;
str2 = (char *) malloc(sizeof(char) * (strlen(str1) + 1));
strcpy(str2, str1);
...
}
如果該參數的malloc是:
sizeof(char) * (strlen(str1)+1)
或者只是:
sizeof(char) * strlen(str1)
'strdup'廣泛使用,但不是由C標準定義的。 –
'strdup'很容易編寫自己,雖然如果你沒有它。如果這是你的代碼中的一個常見操作,我會爲它寫一個函數,而不是每次重複相同的邏輯。 –
1U是什麼意思? – sicklybeans