我有以下数据结构:
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
我觉得已经很晚了,我似乎无法理解一些简单的事情......但为什么不能这样做呢?
答案 0 :(得分:4)
您无法分配这样的数组,例如
char foo[500];
foo = "this won't work";
您必须使用strcpy
strcpy(new_disk.current_file[0].name, "new name");
strncpy
会更安全,std::string
会更安全。