>
>is a common construction, but in the memory limited environment of
>Palm OS probably too sloppy -- there's no way to guarantee that the
>stack has the 100 bytes available when you ask for it, and since
>dynamic memory is pretty small, there a good chance that it won't.
>
>This is the whole reason the PalmOS offers locked chunks. This
>guarantees a safe piece of memory for manipulation. In my
>experience, the only route to truly reliable code in PalmOS is to
>explicitly allocate every byte and explicitly deallocate it when
>you're done. It's a pain in the butt, but I find it oddly satisfying
>to watch my program not leak any memory at all...
>
>Hence:
>
>VoidHand h;
>CharPtr c;
>
>h=MemHandleNew(pick_your_size);
>c=MemHandleLock(h);
>
>StrCopy(c,"blah blah blah");
>
>MemHandleUnlock(h);
>MemHandleFree(h);
Youch! Without error checking, I'd say that is worse than:
>boo[100];
>
>StrCopy(boo,"blah");
Ideally you should both do error checking (handle the case where h == NULL
after MemHandleNew), AND use StrNCopy.
Brian
_____________________________________________________________________
Mark/Space Softworks voice 408-293-7299
111 West Saint John, 3rd Floor fax 408-293-7298
San Jose, CA 95113 <http://www.markspace.com>
PalmOS, Mac OS, Windows and Web Software & Solutions:
PageNOW! Wireless Messaging, PhoneWatcher Caller ID,
Fax Send and Receive for PalmOS
Online & Communicate terminal emulation and serial debugging
DataCord serial data cables for Handheld Devices
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/