关于指针强制转换的疑问?
如下程序
#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;
请高手指教,谢谢
#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;
请高手指教,谢谢
...全文
相关推荐
Java中对null进行强制类型转换的方法
那么,对于对象类型的强制类型转换呢?
关于结构体指针类型的强制转换
在C语言编程中,为了能够灵活地访问这些寄存器,开发者往往需要使用到结构体指针,并且在某些情况下可能还需要对这些指针进行强制类型转换。
强制转换指针类型
### 强制转换指针类型#### 指针与函数指针的本质在计算机编程中,特别是C/C++语言中,指针是一种非常重要的数据类型。它存储的是内存地址而不是具体的值。
函数指针的强制类型转换实现代码
在本篇代码中,我们将探讨如何在C语言中实现函数指针的强制类型转换。函数指针是一种特殊的指针,它存储的是一个函数的地址,允许我们在运行时动态地调用不同类型的函数。在这里,我们关注的是将一个void函数指
C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及强制转换
它们没有隐含的第一个参数,因此声明和使用方式类似于普通函数指针。关于强制转换,当你需要在类成员函数指针和一般函数指针之间进行转换时,这可能会变得复杂。


