Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
YELLOOOW
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 6
#1

Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" - C++

05.09.2014, 22:42. Просмотров 2756. Ответов 22
Метки нет (Все метки)

Всем привет.
Есть два вопроса.
1. Нужно считать из txt файла числа в массив столбцов и строк. Код вроде правильный, но пишет ошибку:"Invalid allocation size: 4294967295 byte".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <fstream> 
#include <algorithm> 
#include <ctime> 
#include <iostream> 
using namespace std; 
int main() 
{ 
int row, col; 
ifstream ifs("matrix.txt"); 
ifs >> row >> col; 
int ** a = new int * [row]; 
for (int r = 0; r < row; r++, cout << endl) { 
a[r] = new int [col]; 
for (int c = 0; c < col; c++) { 
ifs >> a[r][c]; 
cout << a[r][c] << ' '; 
} 
} 
for (int r = 0; r < row; r++) delete[] a[r]; 
delete[] a; 
cin.get(); 
return 0; 
}
2. Нужно считать из txt файла n чисел (которые идут в ряд через пробел), и записать их в массив. Тут возникли трудности... есть пример какого-то кода?

Извиняюсь за дурацкие вопросы.
Буду благодарен за ответ!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2014, 22:42     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte"
Посмотрите здесь:
Код при компиляции пишет ошибку: "Invalid allocation size: 4294967295 byte" C++
Invalid allocation size 4294967295 bytes C++
C++ Ошибка - invalid allocation size: 4294967292 bytes
Указатели, Динамическое выделение памяти, Ошибка invalid allocation size C++
Ошибка "Bad allocation" при обращении к массиву C++
C++ Ошибка при компиляции "Size of the type 'char[]' is unknown or zero"
Ошибка "variable-size type declared outside of any function" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.09.2014, 18:03     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #16
У вас файл не должен открываться. В пути к файлу обратный слеш двойным должен быть.

Добавлено через 20 минут
Вот на это замените, будет понятней, что файл не окрылся:
C++
1
2
else
        std::cout << "Error" << std::endl;
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
07.09.2014, 23:33     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #17
alsav22, тут что-то странное, perror должен ловить эту ошибку...
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.09.2014, 23:58     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #18
Добавлено через 5 минут
Цитата Сообщение от GuGo1991 Посмотреть сообщение
alsav22, тут что-то странное, perror должен ловить эту ошибку...
Я не знаю, как работает perror(), может это он и ловит. У меня, при неправильном пути (с одинарными обратными слешами), выдаёт: "Error: Invalid argument".

Добавлено через 4 минуты
Это он про путь с одинарными обратными слешами выдаёт. Если обратные слеши двойными прописать, но файла нет, выдаёт: "Error: No such file or directory"
Поэтому:
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот на это замените, будет понятней, что файл не окрылся:
C++
1
2
else
    std::cout << "Error" << std::endl;
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.09.2014, 00:09     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #19
Так получается это не perror выдаёт, до него дело и не доходит.
alsav22, у вас при else std::cout << "Error" << std::endl; с одним слешем в пути Error печатает?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 00:21     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #20
Цитата Сообщение от GuGo1991 Посмотреть сообщение
Так получается это не perror выдаёт, до него дело и не доходит.
Вы про кого? Про меня или про ТС?
Цитата Сообщение от GuGo1991 Посмотреть сообщение
alsav22, у вас при else std::cout << "Error" << std::endl; с одним слешем в пути Error печатает?
Да. Ну, если файл не открылся, то else, и что там прописано вывести, то и выводит. Но студия, про путь с одинарными обратными слешами, предупреждение пишет. Например, на такой путь:
C++
1
std::ifstream file("D:\MY C++Projects\LAB\file.txt");
warning C4129: M: неизвестная escape-последовательность
warning C4129: L: неизвестная escape-последовательность
Добавлено через 1 минуту
Кстати, в коде ТС, в 15 посте, по подсветке видно, что путь неправильный.

Добавлено через 46 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
с одним слешем
С одним обратным, прямой может быть одинарным.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.09.2014, 01:41     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #21
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы про кого? Про меня или про ТС?
Про ТС.
Ну да, так сказать, всё по делу. Видимо, IDE YELLOOOW видит ошибку таким образом
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 01:52     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #22
Цитата Сообщение от GuGo1991 Посмотреть сообщение
Видимо, IDE YELLOOOW видит ошибку таким образом
ТС вообще непонятно что пишет. Якобы пробует ваш код, а ошибка та же, что и в первом посте. Я ваш код пробовал и в студии, и в mingw. Вывод ошибок одинаковый. Возможно у ТС в решении несколько проектов, и та ошибка, которую он приводит, относится совсем к другому коду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2014, 12:37     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte"
Еще ссылки по теме:
Бинарный поиск, ошибка: "Invalid operands to binary expression" C++
C++ При работе с free в деструкторе ошибка "Invalid address specified to RtlValidateHeap"
C++ Из-за чего может возникать следующая ошибка: "Invalid null pointer"?
C++ Ошибка при компиляции invalid suffix "i64" on integer constant
C++ Передача двумерного массива в функцию. Ошибка "invalid types for array subscript"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.09.2014, 12:37     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" #23
alsav22, не исключено
Yandex
Объявления
08.09.2014, 12:37     Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru