1

次のデータ構造があります。

struct file{
    char  name[MAX_FILE_NAME];
    char  data[BLOCK_SIZE - MAX_FILE_NAME]
};

struct disk{
    vector<file> current_file;
};

作成したディスクのインデックス0で何かを変更しようとすると、次のようになります。

disk new_disk;

new_disk.current_file[0].name = "new name";

エラーが表示されますexpression must be a modifiable |value

手遅れのような気がして、単純なことを理解できないようです...でも、なぜそれがうまくいかないのですか?

4

1 に答える 1

4

そのような配列を割り当てることはできません。

char foo[500];
foo = "this won't work";

次のような関数を使用する必要がありますstrcpy

strcpy(new_disk.current_file[0].name, "new name");

strncpyより安全になり、std::stringさらに安全になります。

于 2012-11-25T06:30:44.090 に答える