typedef struct //this is a some structure
{
char *a,*b;
float x;
}name;
void freeelem(void *x) //the function for element mem free
{
free(((name*)x)->a);
free(((name*)x)->b);
}
void* allocelem() //
{
void *aux;
aux=malloc(sizeof(name));
return aux;
}
int main()
{
void *x=allocelem();
((name*)x)->a="fdasf";
((name*)x)->b="fafas";
freeelem(x);
return 0;
}
Я не понимаю, почему это приводит к сбою. Так я вхожу в структуру? ................................................. ...............................Элемент конструкции свободный функция
Что делать, если я не могу использовать malloc, если они уже выделены где-то еще, и я хочу их освободить? Я знаю тип и структуру. –
@ConstantinMariusManuel способ 'free' работает в том, что вы можете только освобождать вещи, которые вы malloc'd. Другого варианта нет –
tnx, я буду использовать strdup для чтения строк, он должен работать. –