My code:
wchar_t buffer[64];
wsprintf(buffer, L"%d, %d, %d", x, y, z);
SendMessage(hwndEdit, WM_SETTEXT, NULL, (LPARAM)buffer);
free(buffer); // <-- crashes
The code works fine when NOT freeing the buffer, however crashes when free(buffer) is used.
Is this line necessary, if not, why not? Isn't there a need to free memory after it's used?