怎么把一个指针指向“另一个不同类型的指针指向的内容”

如何把一个指针指向“另一个不同类型的指针指向的内容”
比如先定义了int*pB
再用强制转换,char *pT=(char*)pB;即可

现在是我自己定义的结构
struct UINT1024{
unsigned char pNo[128];
};
struct UINT4096{
unsigned int pNo[128];
};

先定义了UINT4096*pB
就不可以强制转换UINT1024*pT=(UINT1024*)pB;(试了会被中止)

在结构里也不能写指针,怎么能让pT指向“pB指向的内容”呢?
------解决方案--------------------
楼主是什么情况,我这边试了是可以的。
#include<stdio.h>

typedef struct UINT1024{
  unsigned char pNo[128];
}UINT1024;

typedef struct UINT4096{
  unsigned int pNo[128];
}UINT4096;

int main()
{
   UINT4096 *pi ;
   UINT1024 *pu = (UINT1024 *)pi;

   //pu = (UINT1024 *)pi;
   return 0;
}

------解决方案--------------------
   free(pi);
   free(pu);

楼主free两次,有问题吧。