1

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 になりました。なんで?また、a は b から戻った後に期待されるコンテンツをどのように指し示すことができるでしょうか? ありがとうございました!

4

1 に答える 1