ポインタを整数値にキャストすることについての質問です。
サンプルを見て理解できなかったので、色々検索してみました
が、上手く掛かりませんでした。

pBufferに、freadでファイル内のバイナリデータ全て
を入れてます。(正しくは指している、です)

typedef struct {
int num;
float (*f)[16];
} t_loader;

t_loader* LoadFile(char* pFilename)
{
t_loader* pLoader;
// ファイル読み込み&Allocate
(略)
// mallocの戻り値ポインタを変換
pLoader = (t_loader*)pMallocPtr;
// ココです
pLoader->f = (float(*)[16])( (long)pLoader->f + (long)pLoader );

ポインタをlongにキャストし、「加算」した値というのは
どういう意味を持つのでしょうか?
キャストはアドレス値に変換しているのは分かるのですが、
加算というのが理解できないです。