void func(){
int i;
char str[100];
strcat(str, "aa");
printf("%s\n", str);
}
int main(){
func();
func();
func();
return 0;
}
此代碼打印:爲什麼本地數組值不會在函數中被銷燬?
[email protected]
[email protected]
[email protected]
我不明白爲什麼會創建垃圾value([email protected])
,爲什麼"aa"
不斷追加。理論上,當函數終止時,局部值應該被銷燬。但是這段代碼沒有。
因爲你永遠不會初始化它? –
在'strcat'之前做'str [0] ='\ 0';'。 –