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

Crash (access violation) - C++

Восстановить пароль Регистрация
 
Simkara
16 / 3 / 3
Регистрация: 26.11.2011
Сообщений: 92
12.10.2012, 17:26     Crash (access violation) #1
Задача: http://acm.timus.ru/problem.aspx?space=1&num=1313

p.s. ссылку лучше откопипастить в браузер, т.к. форум на выходе её портит

Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <vector>
using namespace std;
 
 int main()
 {
   int n;
   cin>>n;
   if (n>=1 && n<=100)
   {
     vector <vector <int>> a (n, vector <int> (n) );
     for (int i=0; i<n; i++)
     {
          for (int j=0; j<n; j++)
          {
               cin>>a[i][j];
          }
     }
     cout<<a[0][0]<<" ";
     int j=0, i=1;
 
     do
     {
       cout<<a[i][j]<<" ";
       i--; j++;
       if (i<0)
       {
           i=j;
           j=0;
       } 
     }
     while (i<n);
     i=n-1;
     j=1;
     int k=1;
 
     do
     {
       cout<<a[i][j]<<" ";
       i--; j++;
       if (j>n-1)
       {
           i=n-1;
           k++;
           j=k;
       }
     }
     while (j<n);
   } 
     cin.get();
     cin.get();
 
     return 0;
 }
при отправке на проверку системе, выходит ошибка: "Crash (access violation)"
так и не понял в чем проблема, работает исправно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 17:26     Crash (access violation)
Посмотрите здесь:

C++ почему выдает access violation?
C++ Unhandled exception .. access violation
C++ Access violation
Access violation writing exeption C++
Ошибка Access Violation C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
12.10.2012, 17:34     Crash (access violation) #2
Simkara, вообще, у Вас что-то не то с объявлением вектора. Да и на сайте ведь написано: никаких cin.get().
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
12.10.2012, 17:44     Crash (access violation) #3
Попробуйте ввести размер массива равный единице и увидите этот самый Crash.
Simkara
16 / 3 / 3
Регистрация: 26.11.2011
Сообщений: 92
12.10.2012, 18:03  [ТС]     Crash (access violation) #4
Цитата Сообщение от BumerangSP Посмотреть сообщение
Simkara, вообще, у Вас что-то не то с объявлением вектора. Да и на сайте ведь написано: никаких cin.get().
cin.get() удалить не сложно, подскажите как правильно объявить двумерный вектор?

Цитата Сообщение от Toshkarik Посмотреть сообщение
Попробуйте ввести размер массива равный единице и увидите этот самый Crash.
да, тут беда
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
12.10.2012, 18:05     Crash (access violation) #5
Цитата Сообщение от Simkara Посмотреть сообщение
vector <vector <int>>
C++
1
vector< vector<int> >
Пробелы не так расставлены - компилятор считает символы оператором сдвига вправо.
Simkara
16 / 3 / 3
Регистрация: 26.11.2011
Сообщений: 92
12.10.2012, 18:08  [ТС]     Crash (access violation) #6
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
C++
1
vector< vector<int> >
Пробелы не так расставлены - компилятор считает символы оператором сдвига вправо.
пробелы проблему не решили
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
12.10.2012, 18:12     Crash (access violation) #7
Кот Ангенс, в новом стандарте данный код вполне корректен.

Добавлено через 1 минуту
Simkara, Естественно не решили, проблема не в них. Проблема в логике. Сделайте по простому - если размер равен единице выведите единственный элемент, иначе делаете весь код написанный выше.
Кот Ангенс
12.10.2012, 18:16
  #8

Не по теме:

Цитата Сообщение от Toshkarik Посмотреть сообщение
Кот Ангенс, в новом стандарте данный код вполне корректен.
Ну неужели это все-таки исправили!

Стоп, а что будет с
C++
1
2
vector<bitset<64>>1>> v;
//vector< bitset<64 >> 1> >

Simkara
16 / 3 / 3
Регистрация: 26.11.2011
Сообщений: 92
12.10.2012, 18:18  [ТС]     Crash (access violation) #9
разобрался, спасибо Toshkarik за намек

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <vector>
using namespace std;
 
 int main()
 {
   int n;
   cin>>n;
   if (n>=1 && n<=100)
   {
     vector < vector<int> > a (n, vector<int>(n) );
     for (int i=0; i<n; i++)
     {
          for (int j=0; j<n; j++)
          {
               cin>>a[i][j];
          }
     }
     cout<<a[0][0]<<" ";
     if (n==1)
     {
         exit(0);
     }
     int j=0, i=1;
 
     do
     {
       cout<<a[i][j]<<" ";
       i--; j++;
       if (i<0)
       {
           i=j;
           j=0;
       } 
     }
     while (i<n);
     i=n-1;
     j=1;
     int k=1;
 
     do
     {
       cout<<a[i][j]<<" ";
       i--; j++;
       if (j>n-1)
       {
           i=n-1;
           k++;
           j=k;
       }
     }
     while (j<n);
   } 
     cin.get();
     cin.get();
 
     return 0;
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 18:22     Crash (access violation)
Еще ссылки по теме:

C++ access violation at address
Access violation reading location C++
C++ Сортировка слиянием и Access Violation

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

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
12.10.2012, 18:22     Crash (access violation) #10
Кот Ангенс, вики.
Yandex
Объявления
12.10.2012, 18:22     Crash (access violation)
Ответ Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru