[英]In C, can I initialize a string in a pointer declaration the same way I can initialize a string in a char array declaration?
[英]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.