ifstream :: getline分段错误

时间:2015-12-23 02:11:17

标签: c++ multidimensional-array char fstream ifstream

我遇到了一个奇怪的问题。当我尝试执行以下代码时,我在第一次迭代时遇到了分段错误:

const int lineTot = FinCurrentPopulation - DebutCurrentPopulation;
const int lseq = NumLoci + 2;
char seq[lineTot][lseq];
for(int line = 0; line < lineTot; line++) {
    int chromosome = (line - DebutCurrentPopulation) % 2 + 1;
    if(chromosome == 1)
        id++;

    if(in.good()) {
        in.ignore(8, '\t');
        in.ignore(8, '\t');
        in.getline(seq[line], lseq);
    }
}
in.close();

in是ifstream类型,并且在程序的早期成功打开。令我困惑的是,当我将char []提供给in.getline()时,代码按预期工作。另外,gdb告诉我故障是由if(in.good())引起的。有什么想法吗?

感谢。

编辑:制作lineTot和lseq编译时常量。

0 个答案:

没有答案