C言語では動的にメモリー領域を確保するために、malloc()があります。
malloc()はヒープ領域(長期的に使用される大きなサイズのメモリを格納する領域)に指定されたメモリー空間を確保します。
この空間はプログラムが終了してmallocで確保したポインター(スタック領域に確保されたポインター変数)が解放されても、プログラムでfree()しない限り他のプログラムが使うことが出来ない領域として残ります。
そこで、malloc()した場合は必ず不要になったメモリー空間はfree()します。
同じことはC++ではnew演算子とdelete演算子で行います。
tvp = new Tv(); // テレビクラスのオブジェクトをヒープ領域に確保 delete tvp; // new で確保したオブジェクトは delete で解放