c++ - vector 中不可修改的值?

标签 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

我觉得已经晚了,我似乎无法理解一些简单的东西......但为什么那行不通?

最佳答案

你不能像那样分配数组,例如

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

你必须使用像strcpy这样的函数

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

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

关于c++ - vector 中不可修改的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548838/

相关文章:

c++ - __GI_raise 中的 ACE 崩溃

c++ - 具有 BS_AUTORADIOBUTTON 样式的自绘按钮

c++ - 如何将列表分成多个 vector ?

c - 指向结构的指针在 C 中返回不正确的值

mongodb - 使用MongoDB投影

c++ - 如何获取特征张量的 sqrt() 函数返回的标量值

c++ - Code::blocks 提示参数类型

c++ - 如何找到 vector 中的元素?

java - 复制两个 vector java

c++ - 在结构指针中修改 C 字符串