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