C++中的内存操作
1. memcpy # include <string.h> void * memcpy ( void * dest , void * src , unsigned int count ) 将源地址src指向内存区域的count个字节赋值到dest为起始地址的内存区域 src和dest所指内存区域不能重叠,函数返回指向dest的指针 注意,对象不能是简单的内存拷贝,例如C++中STL的字符串类型string,因为memcpy执行的是浅拷贝,只是简单的把第二个内存指向第一个内存的引用,而程序结束时,会对一块内存进行两次内存释放(析构函数)。 C++ String 使用注意: memcpy 2. memset # include <string.h> void * memset ( void * buffer , char c , int count ) 把buffer所指内存区域的前count个字节设置成字符c 返回指向buffer的指针 也适用于整数数组初始化为0或者-1,因为memset按照字节操作,有符号数的0为全0,有符号数的-1为全1,例如 int a [ 100 ] ; memset ( a , 0 , sizeof ( a ) ) ; int b [ 1000 ] ; memset ( b , - 1 , sizeof ( b ) ) ; 3. strcpy #