Comment créer une structure sur la pile en C?

Je comprends comment créer un struct sur le tas en utilisant malloc. Je cherchais de la documentation concernant la création d'un struct en C sur la pile mais tous les documents. semblent parler de la création de struct sur le tas seulement.

50
demandé sur stressed_geek 2012-06-06 18:56:42

2 réponses

De la même manière que vous déclarez n'importe quelle variable sur la pile:

struct my_struct {...};

int main(int argc, char **argv)
{
    struct my_struct my_variable;     // Declare struct on stack
    .
    .
    .
}
50
répondu harald 2012-06-06 14:59:11

Pour déclarer une structure sur la pile, déclarez-La simplement comme une valeur normale / non-pointeur

typedef struct { 
  int field1;
  int field2;
} C;

void foo() { 
  C local;
  local.field1 = 42;
}
25
répondu JaredPar 2012-06-06 14:58:04