首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-06-26 
memmove简单实现,出了很多问题#include stdio.h#include string.hvoid *_memmove(char *str1, const c

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

热点排行