Thanks a lot Henk. Everything works fine now.

"Henk Jonas" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Developer wrote:
>
> > Here is the code:
> >       itemList[i] = (char *) MemPtrNew(25); // 25 is maximum size of
> > structPtr->fld_1
> >       itemList[i] = structPtr->fld_1; // I think I am doing something
> > terribly wrong here
> >
>
> Hey dude, you absolutly right. You do somehting terrible wrong there.
> You allocate room for the string (25 bytes). Then in the next line you
> overwrite the pointer to the allocated room with the pointer you got
> from the record. But later on, you unlock the record pointer. So you
> lost the allocated room and you lost the pointer from your record. Bad
> luck. You better take the allocated room and copy the content!!!! from
> the record into the allocated room. Then everything will be right.
>
> So you have 2 ways:
>
> The quick and dirty and with 2 main assumptions:
> the string is never longer than 24 bytes and you have a 0x00 at the end
> of the string. Then you could use
>
> StrCopy(itemList[i], structPtr->fld_1); (Is the source and destination
> in the correct order?)
>
> the other way is much more safe:
>
> StrNCopy(itemList[i], structPtr->fld_1, 25); // only copy up to 25 bytes
> itemList[i][24] = 0x00; // take care about the 0x00 at the end of the
string
>
> (Here again, I don't know by heart the correct order of source and
> destination.)
>
>
> Regards
> Henk
>
>
>
> --
> -------------------------------------------------------------------------
>    Henk Jonas
>    Palm OS � certified developer
>
>    [EMAIL PROTECTED]                                   www.metaviewsoft.de
> -------------------------------------------------------------------------
>



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to