跳轉到內容

C# 程式設計/關鍵字/stackalloc

來自華夏公益教科書,自由的教科書

關鍵字stackalloc用於不安全的程式碼環境中,在堆疊上分配記憶體塊。

int* fib = stackalloc int[100];

在上面的示例中,在堆疊上分配了一個足夠容納 100 個 int 型別元素的記憶體塊,而不是堆;塊的地址儲存在指標 fib 中。此記憶體不受垃圾回收的控制,因此不必固定(透過 fixed)。記憶體塊的生命週期僅限於定義它的方法的生命週期(在方法返回之前無法釋放記憶體)。

stackalloc僅在本地變數初始化程式中有效。

由於涉及Pointer型別,stackalloc需要不安全的上下文。請參閱不安全程式碼和指標。

stackalloc類似於 C 執行時庫中的_alloca

注意* - 來自 MSDN



C# 關鍵字
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach goto
if implicit in int interface
internal is lock long namespace
new null object operator out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct switch this throw true
try typeof uint ulong unchecked
unsafe ushort using var virtual
void volatile while
特殊 C# 識別符號(上下文關鍵字)
add alias async await dynamic
get global nameof partial remove
set value when where yield
上下文關鍵字(用於查詢)
ascending by descending equals from
group in into join let
on orderby select where
華夏公益教科書