Как это:
element_struct foo = { 1, "bar" };
push(&foo, s);
Если у вас есть компилятор C99, вы можете сделать это:
element_struct foo = {
.id = 1,
.data = "bar"
};
push(&foo, s);
Обратите внимание, что данные в структуре должны быть скопированы, если они должны жить дольше, чем область, в которой они были определены. В противном случае память может быть выделена в куче с помощью malloc (см. Ниже), или может использоваться глобальная или статическая переменная.
element_struct foo = malloc(sizeof (element_struct));
foo.id = 1;
foo.data = "bar";
push(foo, s);