请教一下,以下C代码会有什么问题,会有内存泄露吗?
小弟新学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代码会有什么问题,会有内存泄露吗?