我有一个与动态内存有关的问题。我现在已经几乎放弃使用它并改用向量了,但仍然很想知道为什么以下类型的代码经常给我一个运行时错误,内存分配错误。有没有办法用动态内存来做到这一点?
这个想法基本上是根据某些条件使用循环来增加数组的大小。如前所述,我现在只为此使用 vector.push_back() ,但我想我会发布并看看是否有任何见解。
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <new>
int main()
{
ifstream infile.open("file.txt");
string str1, str2; stringstream os;
int length;
string *vecarr = new string[length];
length = 0;
while(!infile.eof())
{
getline(infile,str1);
if(str1.find("expression") != string::npos)
{
length++;
vecarr[length-1] = str1;
}
}
infile.close();
return 0;
}