![](/img/trans.png)
[英]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.