大家好!今天让小编来大家介绍下关于zeromemory(ZeroMemory是做什么用)的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
文章目录列表:
都需要使用ZeroMemory这个函数主要是用来给Windows的API传递结构参数用的,zeromemory内部就调用了这个函数一般在你定义一个数组之后,所以分配的内存区域有可能刚刚被其他程序释放掉--而这些程序写入到那一段内存的数据还没有被清空,本文目录ZeroMemory是做什么用char与TCHAR、zeromemory的疑问ZeroMemory是做什么用Windows在给你的变量分配内存的时候,因此如果你不用ZeroMemory将刚刚分配的内存清零的话,ZeroMemory就相当于擦桌子,所以调用这个函数会方便一些,分配结构体变量。
本文目录
ZeroMemory是做什么用
Windows在给你的变量分配内存的时候,只是划定一块内存区域给变量,由于物理内存是操作系统里面所有进程共享的资源,所以分配的内存区域有可能刚刚被其他程序释放掉--而这些程序写入到那一段内存的数据还没有被清空,因此如果你不用ZeroMemory将刚刚分配的内存清零的话,读取一段被其他程序写入的数据对你的程序而言是一堆垃圾,这就是为什么有的时候会出现AccessViolation的原因。就好比你去一个很忙的餐厅吃饭,服务员把你领到一个桌子前,这个桌子需要被擦干净你才能用一样,ZeroMemory就相当于擦桌子。简单的,比如说VC内建类型,int, double,char之类的,不需要用ZeroMemory。一般来说,分配结构体变量,都需要使用ZeroMemory这个函数主要是用来给Windows的API传递结构参数用的。因为windows的API内部参数检测机制比较严格,没有用的参数必须要设为零。结构中的参数很多,一个一个设比较麻烦,所以调用这个函数会方便一些。
char与TCHAR、zeromemory的疑问
#ifdef UNICODE typedef WCHAR TCHAR;#else typedef char TCHAR;#endif多查查MSDN,虽然是英文的,但强迫自己去看C语言下的memset函数知道吗?zeromemory内部就调用了这个函数一般在你定义一个数组之后,使用之前可以zeromemory一下,主要目的就是在里面写入个0当字符串结尾一般加sz
以上就是小编对于zeromemory(ZeroMemory是做什么用)问题和相关问题的解答了,zeromemory(ZeroMemory是做什么用)的问题希望对你有用!