关于指针强制转换的疑问?
如下程序
#include <stdio.h>
struct B
{
int bi;
int bj;
};
struct A
{
struct B b;
int ai;
int aj;
};
main()
{
struct A * pa = NULL;
struct B * pb = NULL;
pa = (struct A *) malloc (sizeof(struct A));
pa->b.bi = 1;
pa->b.bj = 2;
pb = (struct B *) pa;
printf("pb->bi=%d pb->bj=%d \r\n", pb->bi, pb->bj);
}
在VC6上pb = (struct B *) pa;能正确赋值.但是在VC2005运行时,怎么pb还是NULL;
请高手指教,谢谢