|
Hi Albert -
I have a program which returns a pointer to a string. It currently setons on LR before returning. I use the pointer in subsequent programs and everything seems to work okay. However, will that memory location eventually be re-used, since I set on LR?
If the caller owns the storage you're okay.If the called program owns the storage directly (i.e. by a definition in the program rather than allocated storage as described below), this situation is an accident looking for a place to happen.
I would try to have the caller own the storage. If that's not possible, have the called program return with LR off. When the caller is done with the storage, call the program with no parameters. Have the called program set on LR and return if the number of parameters passed is zero.
Another option is for the called program to ALLOC the storage and make sure that the ALLOC pointer is passed back. The caller can deallocate the storage later. Both programs must reside in the same activation group.
Ken http://www.kensims.net/ Opinions expressed are my own and do not necessarily represent the views of my employer or anyone in their right mind.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.