int main(void) {
  int *p, rt;
  rt = fnc_1(p);
  // その後fnc_1()で入った値を使う
}
int fnc_1(int *p) {
  int i; // 毎回iに違う値が入る.......
  p = (int *)malloc(i * sizeof(int));
  // pに適当な値が入る。 *p = 1;*(p + 1) = 2;.....
  return 1;
}
の場合、fnc_1()が終わった時点でmalloc()で確保した領域は開放されて
しまって、後でmainのほうでは値を見ることができないのでしょうか?