簡體   English   中英

有沒有辦法初始化指向C中數組的指針(在同一行上)

[英]Is there a way to initialize a pointer to an array in C (on the same line)

我有以下一行(在C中):

char *tmp;

現在,我希望將變量tmp初始化為代碼中的某些指針(下面幾行),然后將其初始化為數組。

有沒有一種方法可以分配指向tmp的堆棧上新創建的數組的指針,而無需創建另一個變量? 因此,代替:

char arr[10];
tmp = arr;

我想要這樣的東西:

tmp = char[10];

在C中可能有類似的東西嗎? 如果可以,可以舉個例子嗎?

您可以使用復合文字功能來做到這一點:

tmp = (char[]){'a', 'b', 'c'};
tmp = alloca(10);

alloca(size)將擴大當前堆棧幀,以適應size多個字節並返回一個指向新分配堆棧空間。

我不認為這是標准的C函數。 盡管通常提供它,但似乎普遍不贊成使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM