我讀過關於變量參數函數「int func(int, ...)
」的內容。 這些函數的參數在哪裏分配(堆棧或堆)?C函數中的變量參數
因爲我讀到va_end()
宏釋放空間分配給va_list
,所以「釋放」這個詞引起了我的注意。
注意:我知道常規函數會進入堆棧,但這種類型的函數很有趣,因爲參數的個數是未知的。
我只是想知道它不像沒有預定義空間的數組; 最後我們使用malloc()
和free()
。
鏈接:https://www.tutorialspoint.com/cprogramming/c_variable_arguments.htm
與常規參數一樣,通常將可變參數壓入堆棧。你不必擔心'malloc'或'free'。 –
_i只是想知道它不像沒有預先定義的space_數組:數組總是有一個預定義的空間。 –
它有什麼不同? – melpomene