以下代码有什么问题:
代码一:
static char *get_str(void)
{
char str[]={"abcd"};
return str;
}
int main(int argc, char ** argv)
{
char *p = get_str();
printf(" %s \n",p);
return 0;
}
代码二:
static char *get_str( char *p)
{
p = malloc(sizeof("abcd"));
strcpy(p,"abcd");
}
int main(int argc, char ** argv)
{
char *p = NULL;
gat_str(p) ;
printf(" %s \n",p);
return 0;
}
a. 申请空间没有释放;
b.申请空间有可能失败,没有进行验证;
int main(int argc, char*argv[])
{
char *p = "abcd" ;
*p = '1' ;
return 0;
}