レスありがとうございます。本当は開放しなくてもいいものなんですか・・・
>>61さんのも試してみたいと思います。

それから、もうひとつ似たようなもので質問よろしいでしょうか?
free()の引数にはアドレスが入ってそのアドレスのメモリを開放するんですよね?
ってことは

char *hoge(){
char *aho;
aho = (char *)malloc(100);
return aho;
}
void main(){
char *ahooo;
ahooo = hoge()
/*
  プログラム
*/
/*ahoを開放*/
}

としたら、mainにfree(ahooo);としてもahoは開放されるってことなんでしょうか?