我使用delete [] p,会发生堆损坏.
Rectangle *p[3];
for (int i = 0; i<3; i++)
p[i] = new Rectangle();
p[0]->set(3, 4);
p[1]->set(10, 8);
p[2]->set(5, 6);
for(int i=0; i < 3; i++)
cout << "Area is " << p[i]->area() << endl;
delete []p;
Run Code Online (Sandbox Code Playgroud)
我将删除[]更改为
for (int i = 0; i<3; i++)
delete p[i];
Run Code Online (Sandbox Code Playgroud)
它有效,但为什么我不能使用delete [] p?删除[] p只删除p [0],删除[] p中的含义是什么?
有什么区别
case WM_DESTROY:
PostQuitMessage(WM_QUIT);
break;
Run Code Online (Sandbox Code Playgroud)
和
case WM_DESTROY:
PostQuitMessage(0);
break;
Run Code Online (Sandbox Code Playgroud)
?
我知道 lp = 长指针 WndProc = Windows 程序
但我不知道什么是 fn。fn 代表什么?
WNDCLASS wndClass;
wndClass.lpfnWndProc = WindowProcedure;
Run Code Online (Sandbox Code Playgroud) #include <Windows.h>
#define WIN32_LEAN_AND_MEAN
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码语句有错误?是顺序错误还是其他?
在我阅读上面的文章之后,我仍然不确定宏是否只是一个函数或其他任何东西.宏是否等于功能?
例:
// Create a Direct3D 9 device.
hr = direct3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dPP, &d3dDevice);
// Cout out the message to indicate the failure.
if(FAILED(hr))
return 0;
Run Code Online (Sandbox Code Playgroud)