C语言内存管理概述
欢迎您进入这片雷区。我欣赏能活着走出这片雷区的高手,但更欣赏“粉身碎骨浑不怕,不留地雷在人间”的勇者。请您不要把这当作一个扫雷游戏,因为没有人能以游戏的心态取胜。
曾经很短暂的使用过一段时间的C#。头三天特别不习惯,因为没有指针!后来用起来越来越顺手,还是因为没有指针!几天的时间很轻易的写了1 万多行C#代码,感觉比用C或C++简单多了。因为你根本就不用去考虑底层的内存管理,也不用考虑内存泄漏的问题,更加不怕“野指针”(有的书叫“悬垂指针”)。所有这一切,系统都给你做了,所以可以很轻松的拿来就用。但是C 或C++,这一切都必须你自己来处理,即使经验丰富的老手也免不了犯错。我曾经做过一个项目,软件提交给客户很久之后,客户发现一个很严重的bug。
这个bug 很少出现,但是一旦出现就是致命的,系统无法启动!这个问题交给我来解决。由于要再现这个bug 十分困难,按照客户给定的操作步骤根本无法再现。经过大概2 周时间天天和客户越洋视频之后,终于找到了bug 的原因——野指针!所以关于内存管理,尤其是野指针的问题,千万千万不要掉以轻心,否则,你会很惨的。
曾经很短暂的使用过一段时间的C#。头三天特别不习惯,因为没有指针!后来用起来越来越顺手,还是因为没有指针!几天的时间很轻易的写了1 万多行C#代码,感觉比用C或C++简单多了。因为你根本就不用去考虑底层的内存管理,也不用考虑内存泄漏的问题,更加不怕“野指针”(有的书叫“悬垂指针”)。所有这一切,系统都给你做了,所以可以很轻松的拿来就用。但是C 或C++,这一切都必须你自己来处理,即使经验丰富的老手也免不了犯错。我曾经做过一个项目,软件提交给客户很久之后,客户发现一个很严重的bug。
这个bug 很少出现,但是一旦出现就是致命的,系统无法启动!这个问题交给我来解决。由于要再现这个bug 十分困难,按照客户给定的操作步骤根本无法再现。经过大概2 周时间天天和客户越洋视频之后,终于找到了bug 的原因——野指针!所以关于内存管理,尤其是野指针的问题,千万千万不要掉以轻心,否则,你会很惨的。