memset、memcpy、strcpy、HeapAlloc

703 篇文章 ¥99.90 ¥299.90
本文通过一个VC6下的Win7单文档工程实例,探讨了memset、memcpy和HeapAlloc在内存操作中的使用。首先,用memset初始化4字节buffer并输出,然后将"123"拷贝到buffer并显示。接着,使用memcpy进行不同长度的数据拷贝,并展示效果。最后,通过HeapAlloc分配带有HEAP_ZERO_MEMORY标志的堆内存,拷贝字符串并验证其内容是否为零初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

win7, vc6;新建一个单文档工程;代码;

void CMemView::OnDraw(CDC* pDC)
{
	CMemDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	char buffer[4];
    memset(buffer,0,sizeof(char)*4);
	pDC->TextOut(10,20, buffer);
    strcpy(buffer,"123");
	pDC->TextOut(10,50, buffer);

	char buffer1[20];
    memset(buffer1,0,sizeof(char)*20);
    memcpy(buffer1,"12345",5);
	pDC->TextOut(10,80, buffer1);
	memset(buffer1,0,sizeof(char)*20);
    memcpy(buffer1,"12345",3);
	pDC->TextOut(10,110, buffer1);

	HANDLE hHeap = HeapCreate(HEAP_NO_SERIALIZE, 1024 * 1024, 0);
	char *pszText = (char*)HeapAlloc(hHeap,HEAP_ZERO_MEMORY, 2 * 1024 * 1024);
	strcpy(pszText, "hello heap!&#
strcpymemsetmemcpy是C语言中的三个常用函数。 strcpy函数用于将一个字符串复制到另一个字符串中。它的第一个参数是目标字符串,第二个参数是源字符串。strcpy只能复制字符串,复制的方法是遇到字符串结束符"\0"时结束。它的返回值是目标字符串的指针。\[1\] memset函数用于将一块内存区域的每个字节都设置为指定的值。它的第一个参数是要设置的内存区域的指针,第二个参数是要设置的值,第三个参数是要设置的内存区域的大小。memset可以用于任意类型的内存区域,不仅限于字符串。它的返回值是指向目标内存区域的指针。\[1\] memcpy函数用于将一个内存区域的内容复制到另一个内存区域中。它的第一个参数是目标内存区域的指针,第二个参数是源内存区域的指针,第三个参数是要复制的内存区域的大小。memcpy可以用于任意类型的内存区域,不仅限于字符串。它的返回值是指向目标内存区域的指针。\[1\] 总结起来,strcpy用于复制字符串,memset用于设置内存区域的值,memcpy用于复制内存区域的内容。它们在复制的内容、复制的方法和用途上有所区别。 #### 引用[.reference_title] - *1* *2* *3* [strcpymemcpymemset之间的区别](https://blog.youkuaiyun.com/weixin_40626724/article/details/90935128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值