C語言的strcpy函數和自己寫的函數

微軟給的strcpy函數有好多潛在問題。時間問題,抽時間再詳析,直接上代碼。

#include <stdio.h>
#include <string.h>
#define GENERIC
void *MyStrcpy( void *dst, const void GENERIC *src, unsigned int len )
{
	unsigned char *pDst;
	const unsigned char GENERIC *pSrc;
	
	pSrc = src;
	pDst = dst;
	
	while ( len-- )
		*pDst++ = *pSrc++;
	
	return ( pDst );
}
void main()
{
	char s[]="123456789";
	char d[]="123";
	char s1[]="123456789";
	char d1[]="123";
	strcpy(d,s);
	printf("s=%s   d=%s\n",s,d);
	MyStrcpy(d1,s1,3);
	printf("d1=%s   s1=%s\n",s1,d1);
	printf("s=0X%08X\nd=0X%08X\ns1=0X%08X\nd1=0X%08X\nstrcpy=0X%08X\nprintf=0X%08X\n",s,d,s1,d1,strcpy,printf);
}

運行結果:


發佈了32 篇原創文章 · 獲贊 12 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章