Reading invalid data from 'arr'

Ошибка

Reading invalid data from 'arr': the readable size is 'SIZE*8' bytes, but '16' bytes may be read.

Ошибка вылезает на вот этой строчке:

max = (arr[0][0] > arr[1][0]) ? arr[0][0] : arr[1][0];

main.cpp:

#include <fstream>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>

using namespace std;

int main() {
    ifstream input_data;
    input_data.open("input_data.txt");

    if (!input_data.is_open()) {
        cout << "Error while opening file";
        system("pause");
        return 0;
    }

    // int SIZE = input_data.gcount();

    int count = 0;

    while (!input_data.eof()) {
        char ch;
        while (input_data >> ch)
            count++;
    }

    int SIZE = sqrt(count);
    double** arr = new double* [SIZE];

    for (int i = 0; i < SIZE; i++)
        arr[i] = new double[SIZE];

    for (int i = 0; i < SIZE; i++)
        for (int j = 0; j < SIZE; j++)
            input_data >> arr[i][j];

    double max;

    max = (arr[0][0] > arr[1][0]) ? arr[0][0] : arr[1][0];
    max = (arr[0][0] > arr[2][0]) ? arr[0][0] : arr[2][0];
    max = (arr[1][0] > arr[2][0]) ? arr[1][0] : arr[2][0];

    ofstream output_data;
    output_data.open("output_data.txt");

    if (!output_data.is_open()) {
        cout << "Error while opening file";
        system("pause");
        return 0;
    }
    else {
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) {
                output_data << setprecision(3) << fixed << arr[i][j] / max << " ";
            }
            output_data << endl;
        }
    }

    for (int i = 0; i < SIZE; i++)
        delete[] arr[i];
    delete[] arr;

    input_data.close();
    output_data.close();
    return 0;
}

Ответы (0 шт):