Я прочитал довольно много мест, которые 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? Также предположим для этого примера, что по какой-то причине я хочу, чтобы значение было выделено в стеке