crtsub *csub_pt; /** where CRTSUB is a data structure.**/
In the code I have two statements one after the other
csub_pt = &wwcsub;
Note: it is #include <sys/errno.h> //// What is the
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 for
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.
free(csub_pt); --------- This is failing saying
At end of the program I have
Yes, of course! Since csub_pt does not contain the address of storage that
you have malloc()'d you should get this error.
In your post to RPG400-L you showed an instruction that was failing, and it
included at least three pointers. (One was a pointer that was redirected
from another pointer.) Given the above, and assuming that nothing else has
changed csub_pt along the way, it is likely that csub_pt is not your issue.
Again, you have not provided enough information for any diagnosis of what
might be wrong. One that I did not point out on the RPG400-L list is that
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 storage
extent is reached (on the Source or the Dest side).
Answers to other questions in that original post: You must not free storage
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 that's
even possible ?!?!) would manifest itself differently - the malloc() would
Life would be so much easier if we could just look at the source code.