
PLC程序调试技巧系列
全11讲 · 公众号推文合集
调试有方法,问题不再难
──────────────────────────────
SECONTROL · ICS软件技术团队
📌 第02篇
程序调试进阶 | 空指针陷阱:一个NULL引发的系统崩溃
──────────────────────────────
指针是高级编程中的"双刃剑"——用得好,程序灵活高效;用得不好,轻则数据错乱,重则系统异常崩溃。其中,"访问空指针"是常见也是危险的错误。
什么是指针?什么是空指针?
每个变量在内存中都有一个地址


指针就是专门用来存储这个地址的特殊变量,如果p是一个指向变量a的一个指针变量,则在内存中表现如下

通过"ADR"操作符可以获取变量地址并赋给指针;通过"^"操作符(解引用)可以读写该地址上的值。

当指针变量的值为 0 时,就称为"空指针"。对空指针解引用,会直接触发系统异常,程序崩溃。

如何安全避免空指针?
方法一:在访问指针之前,先判断指针变量是否为 0

方法二:如果指针访问出现在 IF 条件中,使用 AND_THEN 操作符
AND_THEN 的逻辑:首先条件为 FALSE 时,后续条件不再执行
这样即使指针为 0,也不会触发解引用操作

💡 编程建议:养成"使用前先判空"的习惯,是每位工控程序员的必备素养。无论是指针还是引用,防御性编程永远是稳妥的选择。
小心使用指针,程序才能稳如磐石。下一期,我们来聊聊"除零"这个看似简单却暗藏玄机的问题。
#ST调试技巧 #空指针 #指针安全 #AND_THEN #PLC编程












