時候有必要明確在C串的NULL
字符提供空間。
對於例如;
這工作沒有任何錯誤,雖然我還沒有宣佈str
是7個字符長,即對串加上NULL
字符的字符。空間空字符
#include<stdio.h>
int main(){
char str[6] = "string";
printf("%s", str);
return 0;
}
儘管在這個問題https://stackoverflow.com/a/7652089用戶說
「這如果需要修改字符串後面,但知道它不會超過40個字符(或39個字符後跟一個空結束是非常有用的根據上下文)。「
這是什麼意思」 根據上下文「?
我猜在這種情況下,你的str是一個char數組,所以你可以用sizeof來表示例子的長度,但是如果你把str傳給一個函數,你會得到一個char *和sizeof將會給出一個其他的值 – Alexis