当前所在位置: 首页 > 资讯 >

【一分钟聊嵌入式】C程序中与内存有关的常见错误

2023-03-27 12:22:22来源:面包芯语

扫描关注一起学嵌入式,一起学习,一起成长

本期话题


(资料图片仅供参考)

聊一聊

与内存有关的错误,最让人感到头疼,有时候程序出错很随机,需要排查好久才能找到。

所以,我们应该尽量避免与内存有关的错误,下边列举几种错误,供你参考。

(1)间接引用坏指针

如果间接引用一个指向没有任何意义的数据的指针,那么操作系统会以段异常终止程序。如果向只读区域中写入数据,这些区域会以保护异常终止这个程序。

(2)读未初始化的内存

常见的错误是假设堆内存被初始化为零。

(3)栈缓冲区溢出

如果一个程序不检查输入字符串的大小就写入栈中目标缓冲区,那么这个程序就会出现缓冲区溢出的错误

(4)假设指针和它们指向的对象大小相同

常见的错误是,假设指向对象的指针和它们所指向的对象是相同大小的。

(5)内存越界

这种错误会越界覆盖原有内存的数据,导致出错。

(6)引用指针,而不是它所指向的对象

如果不太注意 C 操作符的优先级和结合性,我们就会错误地操作指针,而不是指针所指向的对象。若对优先级和结合性有疑问的时候,就用括号。

(7)误解指针运算

这类错误是忘记指针的算术运算操作是如何进行。是以指针指向的对象的大小为单位进行的,而这种大小单位并不一定是字节。

(8)误解指针运算

这类错误是忘记指针的算术运算操作是如何进行。是以指针指向的对象的大小为单位进行的,而这种大小单位并不一定是字节。

(9)引用空闲堆块中的数据

引用已经被释放了的堆块中的数据会导致出错。

(10)引起内存泄漏

内存泄漏是缓慢、隐形的杀手,当程序员不小心忘记释放已分配的内存块,则会引起内存泄漏。

以上总结了 C 程序中,管理和使用内存常见的错误类型。在实际的编程中,应该避免出现这些错误,否则会出现意想不到的后果。

觉得文章不错,点击“分享”、“赞”、“在看” 呗!

关键词:

上一篇:天天最新:2023年2月大宗商品-沥青价格分析:价格为3890.9元/吨,同比增加9.81%
下一篇:最后一页