向量内的不可修改值?

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 会更安全。

【讨论】:

以上是关于向量内的不可修改值?的主要内容,如果未能解决你的问题,请参考以下文章

Golang map 的值不可寻址,那如何修改值的属性?

修改查询以根据特定列检查组内的多个值

如何修改Mips中.text段内的.data值?

scala学习记录一

集合并发修改异常-增强for循环,或者迭代器遍历的时候不可修改值

JQUERYAJAX双击DIV,直接修改DIV内的内容