c ++将值复制到一个字符串,然后填充另一个字符串

时间:2017-06-13 12:32:33

标签: c++ memory

我有一个函数,我填充一些字符串变量。问题是我设置了6个包含源和目标路径,名称和扩展名的变量,我设置了另外两个变量,其中一个文件变量也发生了变化。

    lAppendStr.assign(ID_MONGODB_APPEND); // "smallfiles=true\0";
    lSearchStr.assign(ID_MONGODB_APPEND); // "smallfiles=true\0";
    lSrcPath.assign(ID_MONGOODB_PATH); //  "/etc/\0" ;
    lSrcName.assign(ID_MONGOODB_NAME); //   "mongodb\0";
    lSrcExt.assign(ID_MONGOODB_EXT); //     ".conf\0";
    lDestPath.assign(ID_MONGOODB_PATH); //  "/etc/\0";

    lDestName.assign(ID_MONGOODB_PATH); //  "mongodb\0";

    lDestExt.assign(ID_DEFAULT); // "def";

当分配.def时,lAppendStr也会填充.def

所有变量都是字符串并使用""初始化ID定义以\ 0结尾,但仅作为吸管操作的离合器。

我尝试使用字符串值而不是ID,并且移动列表会更改分配结果,但变量仍然会受到交叉污染。

这显然是更大代码的一部分,但我想在我看来是一个内存边界问题。我还发布了一个关于构建一个类的调用的问题,感觉它可能是同样的。

这是在MacBookair上开发的LINUX操作系统,在eclipse氧气开发编辑环境中。

非常感谢任何指导。

0 个答案:

没有答案
相关问题