为什么我不能更改 char* 指向的内容?
例如:
int main(int argc, char * argv[]) {
char *a = NULL; // now a = NULL
b(a);
// but now a points to NULL again! Why?
}
void b(char *argv[], char* c) {
// now a is passed in
c = *argv[3];
// now a actually points to the start of char array pointed to by argv[3]
}
从输出中,我看到 *a 被传递给函数。然后在函数 b 内部,它实际上指向了预期的 char[]。但是当从 b 返回时,a 再次变为 NULL。为什么?从 b 返回后,a 如何指向预期内容?谢谢!