他の関数で配列をmallocでメモリ確保して、
mainでfreeした場合、配列はきちんと開放されるんでしょうか。
配列は引数で渡すと要素数が記憶されなかったと思うのですが
この場合きちんと開放されるのかがわからないです。

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
  char *str;
} TEST;

TEST* get_test(void)
{
  TEST *t = (TEST *) malloc(sizeof(TEST) * 10);
  t[9].str = "Hello, World!";
  printf("t in test() : %p\n", t);
  printf("%p : %s\n", t[9].str, t[9].str);
  return t;
}

int main(void)
{
  TEST *t = get_test();
  printf("t in main() : %p\n", t);
  printf("%p : %s\n", t[9].str, t[9].str);
  free(t);
  return 0;
}