void funct(char *err_msg)
{
err_msg = "some_err";
}
void main()
{
char err_msg[1024] = { 0 };
funct(err_msg);
//funct(&err_msg); //can't do this :(
//after this err_msg still empty
}
我也试过
void funct(char err_msg[])
答案 0 :(得分:4)
如果要在err_msg
内设置funct
,则需要将指针传递给它{/ p>
void funct(char **err_msg)
{
*err_msg = "some_err";
}
并将main
更改为仅声明char*
并致电funct
char* err_msg;
funct(&err_msg);
由于您已在调用函数中为字符串分配了存储空间,因此更容易保留当前签名并复制到err_msg
而不是
void funct(char *err_msg)
{
strcpy(err_msg, "some_err");
}