soloman817 2006-11-23 13:39
关于内存泄露的问题
Palm上编程好象很容易产生内存泄露,所以我一直都很小心。
我是一个才上手Palm编程的新手,请大家多多指点。
我在用DmQueryRecord获得一个记录的内存句柄MemHandle,请问这个句柄是否需要我来释放?
如:
MemHandle memH = DmQueryRecord(dbRef, index);
memP = MemHandleLock(memH);
// do something with memP
MemHandleUnlock(memH);
这时我是否需要执行
MemHandleFree(memH);
???
还有就是有没有什么工具能检测内存泄露呢?用老的palm模拟器好象可以,但我现在用的是Palm OS Developer Suite带的Palm OS Garnet Simulator,有没有方便的办法检查内存泄露?
再问一个问题,MemPtr和MemHandle有什么区别?
请指教,谢了!
eCool 2006-11-23 17:45
1.不用,DmQueryRecord()返回的是指向记录的memory handle,因为一条记录就存放在内存里。
2.就用Emulator看它的Log
3.使用上没啥区别,本质肯定是有的,似乎是两个函数分配的内存区域不一样,好像一个是heap,一个是free memory?