在c ++中读取大型.txt文件时出现奇怪的错误

这个问题在这里已经有了答案:

  • 无法获取分配给char *的内存在C ++ 1答案

  • float* hu_geometry = new float(dim);
    int* hu_temp = new int(dim);
    

    那些是包含值dim 1字符数组。 在某个时候,你正在碰到一个MMU边界并随机崩溃。

    你想写:

    float* hu_geometry = new float[dim];
    int* hu_temp = new int[dim];
    

    或者可能会更好地使用矢量,预先分配了dim元素

    #include <vector>
    std::vector<float> hu_geometry(dim);
    std::vector<int> hu_temp(dim);
    

    或在开始时未分配:

    std::vector<int> hu_temp;
    

    并在你的代码中:

    hu_temp.push_back(stoi(line));
    

    hu_temp.size()给出了这里所描述的大小和许多非常好的功能)

    链接地址: http://www.djcxy.com/p/43883.html

    上一篇: Weird error when reading a large .txt file in c++

    下一篇: What is the meaning of "wild pointer" in C?