2014-02-10 63 views
-2
char str[50]; 
memset(str,0,50); 
strcpy(str,"beauty"); 
char *name = str; 

1)我们可以像上面那样分配char * = char []。 2)如果我们把这个名字作为参数传递给其他函数,有没有可能出错的可能性?这样使用很好吗?

+2

1.是,2.是。 – 2014-02-10 23:48:54

+1

你不需要清除'str',因为'strcpy'也复制了最后的NUL字节。 – lhf

+1

注意:不要重复50次,而应考虑memset(str,0,sizeof str);'。 – chux

回答

2

是的,你可以做到这一点,但请注意,name将指向str,所以如果你修改名称指向的字符,你还将修改str(反之亦然)。

如果你想namestr的副本,以便你可以独立修改它,那么你应该分配足够的内存名称并使用strcpy或memcpy。