【问题标题】: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的错误

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

【问题讨论】:

    标签: c++ vector struct


    【解决方案1】:

    你不能分配这样的数组,例如

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多