Мне кажется, что вы пытаетесь освободить стек или статическую переменную. Вам нужно иметь malloc () и что-то, чтобы он мог быть свободным () 'd.
Попробуйте вместо этого:
TestStruct *ts = malloc(sizeof(TestStruct));
ts->value = 33;
free(ts);
Для тех, кто более знаком с объектно-ориентированными языками, может оказаться полезным создать конструктор:
TestStruct *newTestStruct(int value)
{
TestStruct *ret = malloc(sizeof(TestStruct));
ret->value = value;
return ret;
}
Это позволяет вам выделить структуру и установить значения за один шаг. Просто помните, что это значение должно быть освобождено, как только оно перестает быть полезным:
TestStruct *x = newTestStruct(3);
free(x);