对指向NULL的指针操作会出现什么问题?
本人在ecosystem系统下做开发,涉及到一个问题:
如下操作:char * string = NULL;
printf("%p ---\n",string);
printf("---%d---\n",*string);
当调用上述代码时会第一个打印为0x0,指向NULL即指向0地址。
第二句操作理论上应该是会出现问题,问题如下所述,该句操作换成其他的对string的赋值以及对比或者++,--操作也会出现同样的问题。
当我的程序跑到第二句时程序不是立即卡死,会直接开通我的串口,然后我通过电脑对串口发送数据,它会直接发送回来到我的电脑上,即该处代码会自动接收串口数据并返回到串口发出,然后一会就程序自动重启。
请各位稍加分析,鄙人不甚感激,我主要就是来调通串口的,可是一直发送接收出现错码误码漏码的情况,此时调通了可是却跟我代码无关。
如下操作:char * string = NULL;
printf("%p ---\n",string);
printf("---%d---\n",*string);
当调用上述代码时会第一个打印为0x0,指向NULL即指向0地址。
第二句操作理论上应该是会出现问题,问题如下所述,该句操作换成其他的对string的赋值以及对比或者++,--操作也会出现同样的问题。
当我的程序跑到第二句时程序不是立即卡死,会直接开通我的串口,然后我通过电脑对串口发送数据,它会直接发送回来到我的电脑上,即该处代码会自动接收串口数据并返回到串口发出,然后一会就程序自动重启。
请各位稍加分析,鄙人不甚感激,我主要就是来调通串口的,可是一直发送接收出现错码误码漏码的情况,此时调通了可是却跟我代码无关。
...全文
相关推荐
c语言18个经典问题答录
什么是空指针?- **定义**:在C语言中,空指针是指向地址0的指针。它通常用来表示一个无效或尚未初始化的指针。
C语言指针详解:用法与实例.docx
指针基础1.1 什么是指针?指针是一个变量,它的值是另一个变量的地址。指针变量的类型必须与它指向的变量类型相一致。1.2 如何声明指针?
C语言18个经典问题答录
### C语言18个经典问题答录#### 1. 这样的初始化有什么问题?`char *p = malloc(10);` 编译器提示“非法初始式”云云。
C语言进阶-第四讲存储器与指针.pdf
### 空指针与通用指针#### 空指针空指针是一个特殊值,表示指针不指向任何有效的内存地址。使用NULL或0来初始化指针,表明其当前不指向任何对象,有助于避免非法内存访问。
嵌入式高级c语言进阶-第四讲-存储器与指针
无论是内存分配、指针操作还是数组的使用,都需要开发者具备扎实的基础知识和实践经验。


