| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1650 人关注过本帖
标题:代码是实现 strdup 函数功能的,但是有个错误,写得太渣,求指教
取消只看楼主 加入收藏
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
结帖率:100%
收藏
 问题点数:0 回复次数:16 
代码是实现 strdup 函数功能的,但是有个错误,写得太渣,求指教
程序代码:
#include <stdio.h>
#include <stdlib.h>
char* _sF(char* s, int len)
{
char* F = (char*)malloc(sizeof(char) * len);
for(int i = 0; i < len; i++)
{
    F[i] = s[i]; 
}
F[len] = '\0';
return F;
}
int main()
{
    char *s="hello";
    char *d;
    d=_sF(s);
    printf("%s",d);
    free(d);
    return 0;
}
2014-08-21 21:25
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
这是错误信息:error C2660: '_sF' : function does not take 1 parameters
我百度了一下,说是函数没有带参什么的,不怎么理解

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-21 21:26
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
好像解决了,我没有scanf len

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-21 22:08
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 5 楼 wp231957
那应该怎能么改

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 09:15
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 10 楼 TonyDeng
已解决

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 10:44
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* _sF(char* s, int len)
 {
char* F = (char*)malloc(sizeof(char) * len);
for(int i = 0; i < len; i++)
 {
     F[i] = s[i];
 }
 F[len] = '\0';
return F;
 }
int main()
 {
     char *s="hello";
     char *d;
     d=_sF(s,strlen(s));
     printf("%s",d);
     free(d);
     return 0;
 }
改后的代码,谢谢大家的解答

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 10:45
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 14 楼 wp231957
可是我用了strlen,必须写头文件吧

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 10:58
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 16 楼 wp231957
哦哦好的

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 11:04
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 11 楼 TonyDeng
那就是 return F;free(F);?对吗

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 11:29
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:0 
回复 18 楼 embed_xuel

#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 char* _sF(char* s, int len)
 {
 char* F = (char*)malloc(sizeof(char) * len);
 for(int i = 0; i < len; i++)
 {
      F = s;
 }
 F[len] = '\0';
 return F;
 free(F);//函数内释放?
 }
 int main()
 {
      char *s="hello";
      char *d;
      d=_sF(s,strlen(s));
      printf("%s",d);
      return 0;
 }

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-22 11:30
快速回复:代码是实现 strdup 函数功能的,但是有个错误,写得太渣,求指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018679 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved