原创 结构体指针变量使用时的注意事项

2008-12-10 15:57 5960 5 6 分类: 软件与OS

在使用结构体指针变量的时候,往往容易犯一个“低级”错误。即定义一个结构体指针变量后就直接对结构体指针变量所指向的结构体成员进行操作,从而产生一些莫名其妙的错误。我们必须要给结构体指针变量赋予一个有效的结构体变量地址,才能正常操作结构体指针变量。比如:


struct UART{


             int a;


             uchar b;


}


main()


{


      struct UART  *p;


      p->a = 0xXXX;


      p->b = 0xXX;


     printf("%i,%c",p->b,p->a);


}


这个程序输出的值将是不可预知的,因为“在程序中只是定义了一个结构体指针变量,并没有给该结构体指针变量赋一个有效值,因此该结构体变量所指向的地址将不确定,从而不能得到预期结果”


应该改为:


struct UART{


             int a;


             uchar b;


}


main()


{


      struct UART  *p;


     struct UART dd;


      p = ⅆ               //这句一定要有,否则将出现不可预知的问题


      p->a = 0xXXX;


      p->b = 0xXX;


     printf("%i,%c",p->b,p->a);


}

文章评论1条评论)

登录后参与讨论

用户403611 2009-5-24 11:46

这些都是基础啦. 对指针熟悉的话,就很容易明白. 在写一些稍复杂的程序时,有时还是不可避免的要出现这些问题
相关推荐阅读
用户910254 2010-06-21 19:51
锁相环(PLL)的工作原理(转载)
锁相环(PLL)的工作原理(转载) 1.锁相环的基本组成许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。锁相环路是一种反馈控制电路,简称锁相环(PL...
用户910254 2009-06-10 13:48
推荐USB转串口接口工具
推荐本人淘宝店(丁丁电子)的一款物美价廉的USB转串口工具。该工具实现以下三种功能:1:实现USB转UART功能2:实现RS232转TTL3:实现USB转RS232...
用户910254 2009-06-08 12:04
简易开关电源调试经历
最近一个项目需要自己设计电源,于是就在网上查找资料,最后决定做一反激开关电源。经过调试,验证,最终的原理图如下:由于本人模拟比较菜,这个电路肯定还有需要修改的地方。希望各位DX多提意见,谢谢!!!下面...
用户910254 2009-05-23 19:23
C语言中“:”的使用方法
在C语言中,有一个符号——>“:”,此符号的使用归纳起来有下面三种用法:1:标号识别,用于表示程序的位置。这个在汇编语言中最常用,在C语言中有时也需要用到。比如:                ...
用户910254 2009-05-21 22:51
兴趣和生活的压力
        总有人说,能做自己感兴趣的事是一种幸福,我承认,的确是这样。但往往来自生活的压力总让你不能全身心的投入到你所感兴趣的事情当中来。对于电子,我不敢说“酷爱”,但喜欢应该还可以算得上。  ...
用户910254 2009-05-18 21:32
DS18B20使用笔记
...
我要评论
1
5
关闭 站长推荐上一条 /2 下一条