Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下行(在 C 中):
char *tmp;
现在,我希望将该变量tmp初始化为我的代码中的某个指针(下面几行),然后将其初始化为一个数组。
tmp
有没有办法在tmp不创建另一个变量的情况下分配指向堆栈上新创建的数组的指针?所以,而不是:
char arr[10]; tmp = arr;
我想要这样的东西:
tmp = char[10];
在 C 中可能有类似的东西吗?如果是的话,你能给我举个例子吗?
你可以这样做,使用复合文字功能:
tmp = (char[]){'a', 'b', 'c'};
tmp = alloca(10);
alloca(size)将扩大当前堆栈帧以容纳size更多字节并返回指向新分配的堆栈空间的指针。
alloca(size)
size
我认为这不是标准的 C 函数。尽管它通常提供,但它的使用似乎普遍不受欢迎。