-1
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;
}
なぜこれがseg faultを与えるのか分かりません。それが構造にアクセスする方法ですか? ................................................. ...............................構造体の自由な機能
もし私がmallocを使用できない場合は、 がすでに他の場所に割り当てられていて、それらを解放したいのですが?私はタイプと構造を知っています。 –
@ ConstantinMariusManuel 'free'という仕組みは、あなたがmalloc'dしたものだけを解放できるということです。他のオプションはありません –
tnx、私は文字列を読むためにstrdupを使用します、それは動作するはずです.. –