Как создать структуру в стеке в C?

Я понимаю, как создать struct в куче, используя malloc. Был поиск некоторой документации относительно создания struct в 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;
}