-2
char str[50];
memset(str,0,50);
strcpy(str,"beauty");
char *name = str;
1)我们可以像上面那样分配char * = char []。 2)如果我们把这个名字作为参数传递给其他函数,有没有可能出错的可能性?这样使用很好吗?
char str[50];
memset(str,0,50);
strcpy(str,"beauty");
char *name = str;
1)我们可以像上面那样分配char * = char []。 2)如果我们把这个名字作为参数传递给其他函数,有没有可能出错的可能性?这样使用很好吗?
是的,你可以做到这一点,但请注意,name
将指向str
,所以如果你修改名称指向的字符,你还将修改str
(反之亦然)。
如果你想name
是str
的副本,以便你可以独立修改它,那么你应该分配足够的内存名称并使用strcpy或memcpy。
1.是,2.是。 – 2014-02-10 23:48:54
你不需要清除'str',因为'strcpy'也复制了最后的NUL字节。 – lhf
注意:不要重复50次,而应考虑memset(str,0,sizeof str);'。 – chux