繁体   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