请教一下,以下C代码会有什么问题,会有内存泄露吗?

ffzzyy ffzzyy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟新学C希望大家指点以下,非常感谢。

不包括检查内存益处。

void printvalue (const char *a)
{
char *b;
b=(char *)malloc(sizeof(char)*strlen(a)+1);
strcpy(b,a);
printf("%s\n",b);
return;
}

用这种方式:strcpy有什么问题

char *a[]="12345678";
char *b;

strcpy(b,a);

如果在b的声明该为char *b=NULL;
是不是可以防止野指针。


还有一个程序


void main(){
char *b=NULL;
b=getvalue();
//可以不需要free吗?如果不的话是否有内存泄露。如果getvalue不是在main中调用,是在其他的函数中呢?
free(b);
b=NULL;
}

char *getvalue(){
char *a;
char *b[]="123456789";
a=(char*)malloc(sizeof(char)*strlen(b)+1);
strcpy(a,b);
return a;

}

谢谢大家。

请教一下,以下C代码会有什么问题,会有内存泄露吗?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
ffzzyy
C语言 70,039 成员 243,237 内容