AFAIK the program must be an ILE program for this to work.

-----Original Message-----
From: [] On Behalf Of Schmidt, Mihael
Sent: Wednesday, May 26, 2010 3:29 PM
To: C programming iSeries / AS400
Subject: Re: [C400-L] MCH0601 and MCH6902 issues

You can allocate the memory using a user defined heap. After you finished your work, you can dispose of the user defined heap and the system will free all memory taken from that heap. You don't have to store any pointers to the memory.

It is not a garbage collector but may help you.

-----Original Message-----
From: [] On Behalf Of Gangasani, Bhargava
Sent: Wednesday, May 26, 2010 3:22 PM
To: C programming iSeries / AS400
Subject: Re: [C400-L] MCH0601 and MCH6902 issues

Thank you.

This is very old program and can not catch author.

I am checking for the null character availability while doing string
copy .

Sorry about free(): After returning from the program I think I must free
the memory right. If not I am keep on executing malloc and not freeing
the memory, Is itn't cause a problem. Do we have something similar to
GARBAGE collector (java), which frees memory when it there is no pointer
pointing to it.

-----Original Message-----
On Behalf Of Dennis Lovelady
Sent: Wednesday, May 26, 2010 5:59 PM
To: 'C programming iSeries / AS400'
Subject: Re: [C400-L] MCH0601 and MCH6902 issues

/***Declaration ***/
crtsub wwcsub;
crtsub *csub_pt; /** where CRTSUB is a data structure.**/
In the code I have two statements one after the other
csub_pt =
malloc(sizeof (crtsub));
csub_pt = &wwcsub;
Note: it is #include <sys/errno.h> //// What is the
of it???

Its looks like strange , cusb_pt is getting overridden by the address
of the variable. So what is the point of malloc.

I doubt anyone here can tell you why there are consecutive assignments
csub_pt. Have you spoken with the author?

So I commented this like (malloc ), but then got the issue below after
20 calls to this program in the same job.

At end of the program I have
free(csub_pt); --------- This is failing saying

Yes, of course! Since csub_pt does not contain the address of storage
you have malloc()'d you should get this error.

In your post to RPG400-L you showed an instruction that was failing, and
included at least three pointers. (One was a pointer that was
from another pointer.) Given the above, and assuming that nothing else
changed csub_pt along the way, it is likely that csub_pt is not your

Again, you have not provided enough information for any diagnosis of
might be wrong. One that I did not point out on the RPG400-L list is
even if your pointers are all OK, the strcpy() instruction can result in
this error if it doesn't find an end of string (x'00') before the
extent is reached (on the Source or the Dest side).

Answers to other questions in that original post: You must not free
that you still need; you should (spelled m-u-s-t) free storage that you
don't need. Failure to allocate memory (you've used too much - if
even possible ?!?!) would manifest itself differently - the malloc()

Dennis Lovelady
Life would be so much easier if we could just look at the source code.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2021 by 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.