菜鸟,关于mem.h的问题
本人菜鸟,看到一段程序用到了mem.h头文件不知是干什么的?还有memset和memcpy怎么用?请各大虾指点!
[此贴子已经被作者于2004-08-19 16:41:18编辑过]
给个例子吧: typedef char BYTE; char *p; dataSize = strlen("Hello World!") * sizeof(BYTE) + 1; p = (char *)malloc(dataSize); memset(p, 0, dataSize) //把p所指向的内存空间中的每个字节都设为'\0'. '\0'的ASCII码即为0. memcpy(p, "Hello World!", (dataSize - 1)); // 把字符串"Hello World!"拷贝到p所指向的内存空间.
看看memcpy函数是怎么写的吧;哈哈
void *memcpy(void *pvTo, const void *pvFrom, size_t size) { assert((pvTo != NULL) && (pvFrom != NULL)); // 使用断言 byte *pbTo = (byte *) pvTo; // 防止改变pvTo的地址 byte *pbFrom = (byte *) pvFrom; // 防止改变pvFrom的地址 while(size -- > 0 ) *pbTo ++ = *pbFrom ++ ; return pvTo; } |