首先看一段程序,输出的结果为两个相同的整数(这两个整数是内存地址)。
#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
HLOCAL h = NULL;
int *a = (int*)malloc(sizeof(int));
h = a;
*a = 3;
printf("%d %d/n",a,h);
return 0;
}
- #include "stdafx.h"
- #include <windows.h>
- int _tmain(int argc, _TCHAR* argv[])
- {
- HLOCAL h = NULL;
- int *a = (int*)malloc(sizeof(int));
- h = a;
- *a = 3;
- printf("%d %d/n",a,h);
- return 0;
- }
今天读《Windows核心编程》遇到了HLOCAL这个变量,
// 在WinDef.h中发现 typedef HANDLE HLOCAL; // 在WinNt.h中发现 typedef void *HANDLE;
原来HANDLE和HLOCAL就是void*。
MSDN上的解释为:Handle to a local memory block. 直译是:一个局部的内存块。额,看typedef的这些定义,发现就是指向一块内存区域的指针。