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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,123
Завершенные тесты: 1
#1

Вылетает : R6010 - abort() has been called - C++

01.04.2013, 14:27. Просмотров 3406. Ответов 10
Метки нет (Все метки)

Написал программу которая перемножает 2 очень больших матрицы.
На мелких она работает. То есть 10000 на 10000 умножает без проблем.
Однако 15000x15000 и выше уже выбивают
: R6010 - abort() has been called
Грешил на тип. Так как матрицы типа int сменил на long ошибка осталась.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.04.2013, 14:31     Вылетает : R6010 - abort() has been called #2
Kill100, код в студию. А вообще подобная ошибка встречалась при отсутствии конфига в нужном каталоге.
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,245
Записей в блоге: 1
Завершенные тесты: 1
01.04.2013, 14:35     Вылетает : R6010 - abort() has been called #3
15000 * 15000 = 225 000 000
225 000 000 * 4(sizeof(int)) = 900 000 000 = ~900 MB
900 * 2 (матрицы) = ~1.8 GB

сколько RAM на машине?
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,123
Завершенные тесты: 1
01.04.2013, 14:43  [ТС]     Вылетает : R6010 - abort() has been called #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
900 * 2 (матрицы) = ~1.8 GB
сколько RAM на машине?
16gb. Так что в этом проблемы быть не может
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,245
Записей в блоге: 1
Завершенные тесты: 1
01.04.2013, 14:45     Вылетает : R6010 - abort() has been called #5
причин для abort() много, а дебажить пробовал?
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,123
Завершенные тесты: 1
01.04.2013, 14:47  [ТС]     Вылетает : R6010 - abort() has been called #6
Цитата Сообщение от Tulosba Посмотреть сообщение
Kill100, код в студию. А вообще подобная ошибка встречалась при отсутствии конфига в нужном каталоге.
Чел спс! Ты натолкнул меня 1 очень интересную мысль, проверил прога заработала.
В настройках проекта поставил платформу 64x. И всё пучком.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.04.2013, 14:48     Вылетает : R6010 - abort() has been called #7

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
сколько RAM на машине?
главное чтоб на 16Гб RAM не было 32bit винды



Добавлено через 26 секунд
Цитата Сообщение от Kill100 Посмотреть сообщение
В настройках проекта поставил платформу 64x.
Ч.Т.Д
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,123
Завершенные тесты: 1
01.04.2013, 16:54  [ТС]     Вылетает : R6010 - abort() has been called #8
Рано радовался.
Теперь при построении стало писать
array_on_vector.cpp(129): warning : C6386: Переполнение буфера при записи в "Return_Vektor": доступный для записи объем равен "len_vector_m*4" байт, однако записать можно только "8" байт.
array_on_vector.cpp(132): warning : C6385: Чтение недопустимых данных из "Return_Vektor": доступный для чтения объем равен "len_vector_m*4" байт, однако считать можно только "8" байт.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.04.2013, 16:57     Вылетает : R6010 - abort() has been called #9
Kill100, код-то покажешь или нет?
Kill100
401 / 267 / 37
Регистрация: 11.12.2010
Сообщений: 1,123
Завершенные тесты: 1
01.04.2013, 16:58  [ТС]     Вылетает : R6010 - abort() has been called #10
А всё отбой нашел описание
http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
long* Multiply(long* vectors, long len_vector_m, long** mass, long mass_n)
{
    long* Return_Vektor = new long[len_vector_m];//а надо было mass_n
    for(long i=0; i<mass_n; i++)
    {
        Return_Vektor[i]=0;//обнуляем значение
        for (long j=0; j<len_vector_m; j++)
        {
            Return_Vektor[i]+=mass[i][j]*vectors[j];//умножение вектора на столбцы
        }
    }
    return Return_Vektor;//возвращая результат
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2013, 17:03     Вылетает : R6010 - abort() has been called
Еще ссылки по теме:
функция abort() C++
C++ Правильное использование throw и abort
C++ Std::mutex выдает исключение abort() при попытки unlock()
C++ Не понимаю из-за чего выскакивает: terminate called after throwing instance of std bad_alloc
Ошибка при повторном запуске: terminate called after throwing an instance of 'std::ios_base::failure' C++

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

Или воспользуйтесь поиском по форуму:
Friday
ну и долго меня небыло...
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 17:03     Вылетает : R6010 - abort() has been called #11
Цитата Сообщение от Kill100 Посмотреть сообщение
А всё отбой нашел описание
http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
long* Multiply(long* vectors, long len_vector_m, long** mass, long mass_n)
{
    long* Return_Vektor = new long[len_vector_m];//а надо было mass_n
    for(long i=0; i<mass_n; i++)
    {
        Return_Vektor[i]=0;//обнуляем значение
        for (long j=0; j<len_vector_m; j++)
        {
            Return_Vektor[i]+=mass[i][j]*vectors[j];//умножение вектора на столбцы
        }
    }
    return Return_Vektor;//возвращая результат
}
попробуй long long вместо long
Yandex
Объявления
01.04.2013, 17:03     Вылетает : R6010 - abort() has been called
Ответ Создать тему
Опции темы

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