Я понимаю, как создать struct
в куче, используя malloc
. Был поиск некоторой документации относительно создания struct
в C в стеке, но все документы. похоже, говорят о создании структуры только на куче.
Как создать структуру в стеке в C?
Ответ 1
Точно так же вы объявляете любую переменную в стеке:
struct my_struct {...};
int main(int argc, char **argv)
{
struct my_struct my_variable; // Declare struct on stack
.
.
.
}
Ответ 2
Чтобы объявить структуру в стеке, просто объявите ее как нормальное/не указательное значение
typedef struct {
int field1;
int field2;
} C;
void foo() {
C local;
local.field1 = 42;
}