向量中不可修改的值?

时间:2012-11-25 06:27:19

标签: c++ vector struct

我有以下数据结构:

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

的错误

我觉得已经很晚了,我似乎无法理解一些简单的事情......但为什么不能这样做呢?

1 个答案:

答案 0 :(得分:4)

您无法分配这样的数组,例如

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

您必须使用strcpy

之类的功能
strcpy(new_disk.current_file[0].name, "new name");

strncpy会更安全,std::string会更安全。