我寫了一個C程序,我對程序的輸出感到困惑。 程序是這樣的:在C程序中獲取方法
int main()
{
char arr1[13] = "abcdefg";
char arr2[10];
gets(arr2);
puts(arr2);
strncat(arr1, arr2, 5);
puts(arr1);
puts(arr2);
return 0;
}
我輸入 「QWERTYUIOP」,其結果是:
qwertyuiop
qwert
qwertyuiopqwert
誰能告訴我,爲什麼ARR1的價值變成了 「QWERT」? 非常感謝!
可能重複[如何獲取()超過內存分配malloc()?](http://stackoverflow.com/questions/20094586/how-can-gets-exceed-memory-allocated-by- malloc) – anatolyg 2014-08-28 06:35:02