Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
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[])
如果你想在err_msg里面设置funct,你需要传递一个指向它的指针
err_msg
funct
void funct(char **err_msg) { *err_msg = "some_err"; }
并更改为main仅声明 achar*并调用funct
main
char*
char* err_msg; funct(&err_msg);
由于您在调用函数中为字符串分配了存储空间,因此保留当前签名并复制到其中会更err_msg容易
void funct(char *err_msg) { strcpy(err_msg, "some_err"); }