0

私は構造体を持っています:

struct person {
    char firstname[];
};

そして方法:

void abcde (person* a, char firstchar[]) {
    a->firstname = firstchar;
}

gcc はこれをスローします。

char*' tochar[0u]' の割り当てに互換性のない型があります

この問題を解決するには?手伝ってくれてありがとう!

4

1 に答える 1

2

配列に割り当てることはできません。ポインターが必要か、あるコンテンツを別のコンテンツにコピーします。

struct person {
    char* firstname;
};

void abcde (person* a, char firstchar[]) { 
    a->firstname = firstchar;
}

firstchar関数のパラメーターは、配列ではなくポインターです。これ[]は単なる構文上の便宜です。これはchar firstname[];、配列である には当てはまりません。

于 2013-05-25T21:43:42.423 に答える