[fpc-pascal] Function to create a record ? <solved>
Steve Litt
slitt at troubleshooters.com
Sun Jun 4 15:37:09 CEST 2023
Henry Vermaak via fpc-pascal said on Fri, 2 Jun 2023 09:38:17 +0100
>On Fri, 2 Jun 2023 at 01:36, Steve Litt via fpc-pascal
><fpc-pascal at lists.freepascal.org> wrote:
>> fillchar(junkvar, junkvar_size, 'b');
>> person := modperson(person, 'Martin');
>> person := modperson(person2, 'Maria');
>
>Maybe a typo? (E.g. person2 := modperson(person2, 'Maria'))
>
>Henry
Thanks Henry!
You're right: Changing the second person := to person2 := did just what
I wanted it to do.
Because returning a local array or string as a function return in C
leads to horrible intermittents due to the local going out of scope and
relinquishing the local's stack, which can then be overwritten, I added
a procedure, a function, and a main program statement which each
consumed two million bytes of local variables, and the person and
person2 didn't get overwritten. Very cool.
When I increased the huge local vars to three million bytes, the
program segfaulted. I figure I just ran it out of stack, but until I
did, the huge local vars didn't trash the contents of person and
person2.
Thanks for your help.
SteveT
Steve Litt
Autumn 2022 featured book: Thriving in Tough Times
http://www.troubleshooters.com/bookstore/thrive.htm
More information about the fpc-pascal
mailing list