alloca
我已经阅读了很多已过时且不应使用的地方,而应使用可变长度数组。
我的问题是:alloca
完全可以用可变长度数组替换吗?
在我的特定实例中,我有一些看起来像这样的东西:
typedef struct {
int *value;
size_t size;
} some_type;
void SomeExternalFunction(some_type);
...
void foo(){
//What I thought to do
some_type bar;
bar.value=alloca(sizeof(int)*10);
SomeExternalFunction(bar);
//what should be done without alloca
some_type fizz;
int tmp[10];
fizz.value=tmp;
SoemExternalFunction(fizz);
}
我是否遗漏了某些东西,或者这是对 alloca 的实际使用?还假设对于这个例子,由于某种原因,我希望在堆栈上分配值