I'm getting an EStackOverflow when creating a packed struct in Borland Delphi 7.0
I want to do the following:
Type
T4 = packed record
VT : integer;
SKT : byte;
end;
T3 = packed record
O : boolean;
TT4 : array of T4;
end;
T2 = packed record
con : boolean;
TT3 : array [64..90,64..90] of T3;
End;
TTT = array [64..90,64..90] of T2;
procedure TForm1.Button1Click(Sender: TObject);
var
Arr : TTT;
begin
Arr[64,64].con:=false;
end;
But when I run the program and click the button, I get an EStackOverflow error on the begin
line of Button1Click
.
Can someone help me?
Simple, the created items are too big for the default stack size. Either increase that when creating the thread or allocate the memory on the heap. Either way works.
Just do the math on it:
sizeof(T4) = 5
sizeof(T3) = 5
sizeof(T2) = 3646 // if I'm right
sizeof(TTT)= 2657934
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With