首先看一段程序,输出的结果为两个相同的整数(这两个整数是内存地址)。
#include "stdafx.h" #includeint _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的这些定义,发现就是指向一块内存区域的指针。