I have this piece of code which keeps throwing a 'buffer too small' error during debug.
geoGraph.size=limit;
CString xAxis ="X axis: ",yAxis="Y axis: ";
for (int x = 0; x < limit; x++)
{
xAxis.Format(_T("%s%i "),xAxis,(x+1));
yAxis.Format(_T("%s%s "),yAxis,dialog_test.str[x]);
}
xAxis.Format(_T("%s \n%s "),xAxis,yAxis);// <---Error thrown
d.SetWindowTextA(xAxis);
I came into the conclusion that the error was due to the fact that the Cstring xAxis is too small to contain the new text, am I correct and if so, how do I remedy it?
Thanks.
Edit: I'm curios as to why this error is only shown during debugging and not when I'm running the application with 'start without debugging' (I use VS2008).
No! The real problem was:
Never use a CString in Format as target AND source! This might work in the Release Version, because the Memory MIGHT not be changed, but if it is changed the behaviour is undefined. But it is a real bad coding bug.
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