- 论坛徽章:
- 1
|
本帖最后由 L_kernel 于 2012-10-19 14:23 编辑
kelvin_fly 发表于 2012-10-19 13:40 ![]()
回复 8# Ager
笔误,已修改。 谢谢。 三个个错误,第一个是dest没有malloc,第二个循环那里不能终止,一直写下去,会越界,所以会Segment fault。第三个是return a,返回不到你要的结果,return dest才是正确的(你想要的结果)。- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- char *memmovea(char *dest, const char *src, size_t n);
- int main()
- {
- char *dest, *res, *src = "abcdefg";
- int n = 4;
- dest = malloc(n+1);
- memset(dest, '\0', n+1);
- res = memmovea(dest,src,n);
- puts(res);
- return 0;
- }
- char *memmovea(char *dest, const char *src, size_t n)
- {
- int i;
- char *a = dest;
- /* char *b = src; */
- for(i=0; i<n; i++,*dest++=*src++)
- ;
- return a;
- }
复制代码 |
|