专栏中心

EEPW首页 > 专栏 > 指针使用需注意的问题

指针使用需注意的问题

发布人:farsight2009 时间:2009-08-25 来源:工程师 发布文章

 

作者:曹忠明,华清远见嵌入式学院讲师。

指针是C语言中的难点,很多人对他的使用掌握的不是很好,使用过程中出现很多的问题。
    使用指针的时候需要注意几点:
    1、分配空间
    2、初始化
    3、释放

这些可能很多人都知道,但是用的时候往往会忘记做这些工作,这带来的结果就是“段错误”,对于初学者,这个错误很难定位。可谓是深恶痛绝吧。

常出现的错误有几种
    1、指针没有初始化。
    2、越界。
    3、指针free掉后,被使用。

我这里说的是,指针在结构体中的运用。

可能你定义一个结构体如:
    typedef struct test1
    {
        int a;
        int b;
        char * c;
    }test1_t;

typedef struct test2
    {
        char *d;
        test1_t *e;
    }test2_t;

 很多时候我们使用这个结构体类型的时候只是定义一个变量。如:

test2_t *test_struct;

 且为其分配空间

test_struct = (test2_t *)malloc(sizeof(test2_t));

 这样就结束了吗,我们就可以对结构体中的数据进行操作了吗,答案是不,

 我们对test_sruct->c操作时发现c也是一个指针变量,那么我们也必须为他分配空间,同样,test_sruct->e,test_sruct->e->c都得为其分配空间,也就是说这种情况下我们应该一层一层的为他们去分配空间,避免漏掉,出现错误。

 空间申请了,我们也使用了我们也使用了,那么是不是就结束了,呵呵,还差一步,等这些分配了的空间没用了的时候,我们一定要将他们free掉,可能你说,我写得程序从来不用干这个也没事呀,其实不然,这只是说明你的程序足够的小,系统资源足够负担这些浪费掉的空间,当你的程序足够大的时候,你可能对这些空间斤斤计较了,free掉没用空间是一个号的习惯。

 这些也是我以前经常犯得错误,其实现在偶尔疏忽也犯,写出来给大家提个醒,同时也是给自己一个警示

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

为什么功率密度对NASA的月球勘测轨道飞行器很重要

德州仪器 TMS320C6474 DSP 评估板

视频 2010-03-18

2025深圳物联网展:世强硬创AI算力技术降低智能开发门槛

电源管理设计贴士

视频 2010-03-18

研究人员在寒冷天气下实现电动汽车充电速度提高 5 倍

超声波扫描转换演示 OMAP3530 EVM

视频 2010-03-18

采埃孚(ZF)的增程器技术新发展

汽车电子 2025-09-08

低功耗射频和德州仪器的解决方案

视频 2010-03-18

轮毂电机提高了电动汽车的续航里程和效率

芯片互连正在走向光学

过孔、顺序层压和电镀:探讨它们在 PCB 设计中信号完整性中的作用

EDA/PCB 2025-09-08

中国AI代码生成市场迎来爆发期:IDC研究揭示关键趋势与厂商格局

提供开发板

xjchy 2004-09-13

高性能 32位嵌入式处理器TMS470 家族

视频 2010-03-18

克服高频 PCB 设计中的常见陷阱

EDA/PCB 2025-09-08

自制 SoM(系统模块)

更多 培训课堂
更多 焦点
更多 视频

技术专区