On Saturday, 9 September 2023 at 09:47:14 UTC, Steven Schveighoffer wrote:
>You are focusing on the wrong problem.
You asked for size bytes, and malloc gave you size bytes. It doesn't "know" anything special.
Then you proceeded at some point to write past the size bytes. What did you overwrite? Probably some internal malloc implementation structure. Then it later noticed "hey, this structure doesn't make sense, I'm going to report it to the user!" That's why you see the message.
Memory problems are very difficult to find, and typically an error is triggered far away from the source, in seemingly unrelated code. This is why whenever I see an error that smells like memory corruption, I stop all other work and find it. Memory errors can come and go based on random chance or how the compiler lays out functions. So having it "just go away" isn't enough. Very very infrequently, this happens because of a codegen issue, but most of the time it's pilot error.
-Steve
I understand! Thank you for the valuable information. I do have lots of things to learn it seems. But that means that I also won't get bored anytime soon ;)