摘要: 扩展的数组类型:1. 普通数组中,我们申请一连续的内存块,其中存放相同类型的数组元素,这样每个元素占用的内存相同,每个元素在数组中的偏移地址也可以通过一个等差公式计算出来,如:int array[10],这样元素的偏移地址依次为0,4,8…当知道起始地址array时,我们可以通过(array + 4*i)获得每个元素的地址,进而获得每个元素的值2. 扩展的数组类型中,我们申请一连续的内存块,其中存放不同类型的数组元素,这样每个元素占用的内存长度是不同的,每个元素在数组中的偏移地址也不再是一个等差的距离,通常我们使用扩展数组时,我们需要保存的数据的数据类型是已知的,我们统计好每个数据的数据名.. 阅读全文
posted @ 2012-11-03 17:17 liuhao2638 阅读(365) 评论(0) 推荐(0) 编辑
摘要: HGLOBAL是windows定义的数据类型,是一个句柄类型,表示一个内存块,这个内存块通过GlobalAlloc()函数分配,要通过GlobalLock()才能获得这个内存块的指针,最后需要GlobalUnlock()解锁这个内存块,通过GlobalFree()释放这个内存使这个指针无效,下面我们分别介绍这几个函数:1.HGLOBAL GlobalAlloc(UINT uFlags, DWORD dwBytes);功能:申请一块内存,第一个参数是分配的属性,第二个参数是分配的字节数返回:标示这块内存的句柄2.LPVOID GlobalLock(HGLOBAL hMem)功能:传入Global 阅读全文
posted @ 2012-11-03 15:50 liuhao2638 阅读(1923) 评论(0) 推荐(1) 编辑
摘要: 编写程序中我们常常需要对一个内存块的内容进行复制,有以下两个函数常常会用到,专门针对字符串的复制函数strcpy()/strcpy_s()和不针对具体的数据类型而仅仅复制一连续内存的memcpy()函数,这两个函数用法上有一些异同,下面我们分别进行分析:1.strcpy()用法char *strcpy(char *dest, const char *src);功能:从src地址开始的以'\0'结束符结束的字符串复制到以dest开始的地址空间返回:指向dest的指针#include <string.h>int main(void){ char string[80]; 阅读全文
posted @ 2012-11-03 15:32 liuhao2638 阅读(378) 评论(0) 推荐(0) 编辑