1
为什么我不能更改char *指向的内容?
例如:如何在将char *传递给C中的函数后指向期望的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]
}
从输出中,我看到了一个*传递给函数。然后在函数b中,它实际上指向了期望的char []。但是当从b返回时,a再次变为NULL。为什么? a从b返回后如何指向期望的内容?谢谢!
这只是大量的错误C,你不应该感到惊讶,它表现得异乎寻常。声明一个正确的函数原型,它将无法编译,就像你期望和希望的那样。 –
我无法弄清楚你在这个例子中要做什么。请阅读C的基础知识。 – shunyo