我有一个问题,我无法真正理解它是如何存在的。
我有一堆按时间排序并包含一堆对象的文件。结果应该是每次在每个对象的目录中排序的一个文件。
它工作得很好,但是在我将Outputstring
a转换为char[]
要使用fstream.open()
的地方,数组的字符比字符串多 3 个字符。
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
string strOutput;
char *OutputFile;
short z;
strOutput = "/home/.../2046001_2013-02-25T0959.txt";
cout << strOutput << endl;
OutputFile = new char[strOutput.length()];
z = 0;
while (z < strOutput.length())
{
OutputFile[z] = strOutput[z];
z++;
}
cout << OutputFile << endl;
return 0;
}
第一个输出总是正确的,但第二个有时有结尾.txt60A
,.txt5.a
或.txt9.A
。当它发生时,它总是相同的对象和时间,并且每次尝试都会发生。但并非每个对象都这样做。
由于显而易见的原因,我无法在这个最小的代码片段中重现此错误,但我也不想发布整个 390 行代码。
你有什么建议吗?