0
我的代碼時:錯誤釋放緩衝
wchar_t buffer[64];
wsprintf(buffer, L"%d, %d, %d", x, y, z);
SendMessage(hwndEdit, WM_SETTEXT, NULL, (LPARAM)buffer);
free(buffer); // <-- crashes
的代碼工作正常時不釋放緩衝區,但是當崩潰免費(緩衝區)被使用。
這是行必要的,如果沒有,爲什麼不呢?使用後是否需要釋放內存?
我明白了,所以當我應該釋放一個緩衝區?我如何知道緩衝區是否分配在堆棧上? – ChaseTheSun 2013-04-24 01:56:54
@ChaseTheSun看到我更新後? – taocp 2013-04-24 01:57:49
@ChaseTheSun如果_explicitly_分配的緩衝區,例如用'malloc'或類似的函數,那麼你需要釋放它。編譯器完全處理堆棧上的變量。 – 2013-04-24 01:58:00