动态数组大小,来自文件中的行数

时间:2017-06-22 09:32:12

标签: c++ arrays

我已经创建了一个数组,但现在它的大小需要由文件中的行数确定,它可以正常工作,直到我使用for循环将数组元素放入另一个文件,我得到错误& #34; _Pnext是0xCCCCCCD0",为什么?如果我在for循环而不是number_of_lines中放置一个数字,即30,则其工作正常

int number_of_lines=0;
std::string line2;
std::ifstream myfile("Input_files\\Pronunciations.txt");
while (std::getline(myfile, line2))
{
    ++number_of_lines;
}
string *hexsource = new string[number_of_lines];
for (int o = 0; o <number_of_lines; ++o)
{
    file2 >> name[o] >> ipaname[o] >> anyway[o];
}

2 个答案:

答案 0 :(得分:0)

for (int o = 0; o <++number_of_lines; ++o)

应该是

for (int o = 0; o < number_of_lines; ++o)

否则你的最终状况永远不会得到满足。

答案 1 :(得分:0)

你确定问题是在循环内吗? 如果是这样,我能想到的一个问题是,如果number_of_lines大于name / ipname /的大小,那么它会产生问题。

你给它们的尺寸是多大?

number_of_lines的最大值是什么?

您需要在代码中提及所有必需的内容