char *str = "abc";
这个函数是传入char*类型,也就是str,而不是char **。我猜你第一次是用str结果出错了,所以改成用&str结果没出错是吗?之所以str传进去发生段错误是因为它指向的内存位置存放的是字符串常量,而这个内存位置是不允许在运行时修改的,所以出错了。你可以改成用数组来存字符串,再试试bzero函数。
传入 str 没毛病啊……
str