Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向量内不可修改的值?_C++_Vector_Struct - Fatal编程技术网

C++ 向量内不可修改的值?

C++ 向量内不可修改的值?,c++,vector,struct,C++,Vector,Struct,我有以下数据结构: struct file{ char name[MAX_FILE_NAME]; char data[BLOCK_SIZE - MAX_FILE_NAME] }; struct disk{ vector<file> current_file; }; 我得到的错误是表达式必须是可修改的|值 我觉得已经很晚了,我似乎无法理解一些简单的事情。。。但是为什么这样不行呢?你不能这样分配数组,例如 char foo[500]; foo = "thi

我有以下数据结构:

struct file{
    char  name[MAX_FILE_NAME];
    char  data[BLOCK_SIZE - MAX_FILE_NAME]
};

struct disk{
    vector<file> current_file;
};
我得到的错误是
表达式必须是可修改的|值


我觉得已经很晚了,我似乎无法理解一些简单的事情。。。但是为什么这样不行呢?

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

char foo[500];
foo = "this won't work";
您必须使用类似于
strcpy

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

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

您不能这样分配数组,例如

char foo[500];
foo = "this won't work";
您必须使用类似于
strcpy

strcpy(new_disk.current_file[0].name, "new name");
strncpy
会更安全,
std::string
会更安全