我有一个函数,我填充一些字符串变量。问题是我设置了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氧气开发编辑环境中。
非常感谢任何指导。