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;
}