向量内的不可修改值?
Posted
技术标签:
【中文标题】向量内的不可修改值?【英文标题】:non-modifiable value within vector? 【发布时间】:2012-11-25 06:27:19 【问题描述】:我有以下数据结构:
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】:你不能分配这样的数组,例如
char foo[500];
foo = "this won't work";
你必须使用像strcpy
这样的函数
strcpy(new_disk.current_file[0].name, "new name");
strncpy
会更安全,std::string
会更安全。
【讨论】:
以上是关于向量内的不可修改值?的主要内容,如果未能解决你的问题,请参考以下文章