尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆
中动态分配内存的过程的。那么嵌入式系统中,动态分配内 存可能发生
的问题是什么?
这里,我期望应试者能提到内存碎片,碎片收集的问题,变量的 持
ESP
行时间等等。这个主题己经在 杂志中被广泛地讨论过了(主要 是
Plauger,
他的解释远远超过我这里能提到的任何解释 ),所 有回过头看
一下这些杂志吧!让应试者进入一种虚假的安全感觉后,我拿出这么一个
小节目:下面的代码片段的输出是什么,为什么?
辻(
(ptr=(char*)malloc(0))==NULL)
puts ( Gotanullpoi nt er” );
4<
puts ( Gotavalidpointer ;
n
这是一个有趣的问题。最近在我的一个同事不经意把 值传给了 函
malloc,
得到了一个合法的指针之后,我才想到这个问题。这 就是上
面的代码,该代码的输出是
"Gotavalidpointer"
。我用这 个来开始讨论
这样的一问题,看看被面试者是否想到库例程这样做 是正确。得到正确
的答案固然重要,但解决问题的方法和你做决定 的基本原理更重要些。