读书人

memmove 简单实现出了很多有关问题

发布时间: 2013-06-26 14:29:32 作者: rapoo

memmove 简单实现,出了很多问题


#include <stdio.h>
#include <string.h>
void *_memmove(char *str1, const char *str2, size_t n)
{
if (n == 0 && n < strlen(str2))
return NULL;

strncpy( str1, str2, n); //为什么会出现段错误

return str1;
}
int main()
{
char *dest = "abcdefghijklmnopqrstuvwxyz0123456789";
char *src = "******************************";
printf("destination prior to memmove: %s\n", dest);
_memmove(dest, src, 3);

printf("destination after memmove: %s\n", dest);
return 0;

}

[解决办法]
_memmove(dest, src, 3);
出现错误是因为你对常量区的数据进行了操作
[解决办法]

http://www.microsoft.com/visualstudio/chs/downloads#d-2010-express
点开Visual C++ 2010 Express下面的语言选‘简体中文’,再点立即安装

再参考
简单版:C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\memmove.c
增强版:C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\intel\memcpy.asm

读书人网 >C语言

热点推荐